【问题标题】:List not printing all .text values using Selenium and Python列表不使用 Selenium 和 Python 打印所有 .text 值
【发布时间】:2020-11-07 06:02:06
【问题描述】:

所以我最近一直在使用 selenium,并决定使用以下方法将一些值放入列表中:

Values = browser.find_elements_by_xpath("//div[@class='main-col']//li[@class='test-item test-item--favourites']")

所有值都按预期存储。虽然当我使用例如:

for i in range (len(Values)):
    print(Values[i].text)
    i+=1

代码运行到列表中的第 50 个索引并输出详细信息,但此后为空白。我可以跑:

print(values[50])

它会输出,但 .text 什么也没给我。

我正在使用 pYcharm 进行开发,并在此阶段研究了变量。我可以看到,一旦我单击变量,它会显示“正在收集变量数据”,然后我可以在列表中输出更多变量。

有没有一种方法可以强制 selenium 收集所有可变数据,以便我可以遍历列表中的每个索引并将其存储为 .text 格式,或者我可以使用更好的替代方法/方法吗?

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

    如果.text 为空白,则表示CSS Selector 之间没有文本。要从CSS Selector 中获取attribute,您必须使用get_attribute() 函数。在() 中放置一个string,这是您要查找的值的属性的名称。例如

    print(i.get_attribute('class'))
    

    【讨论】:

      【解决方案2】:

      您可以提取 文本 直到第 50 个索引,因为 find_elements_by_xpath() 能够根据您的 Locator Strategy 识别 50 个奇数元素。


      解决方案

      要使用Selenium 收集所有需要的元素,您必须为visibility_of_all_elements_located() 诱导WebDriverWait,您可以使用以下Locator Strategies 之一:

      • 使用CSS_SELECTORget_attribute("innerHTML")

        print([my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div.main-col li.test-item.test-item--favourites")))])
        
      • 使用XPATHtext属性:

        print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='main-col']//li[@class='test-item test-item--favourites']")))])
        
      • 注意:您必须添加以下导入:

        from selenium.webdriver.support.ui import WebDriverWait
        from selenium.webdriver.common.by import By
        from selenium.webdriver.support import expected_conditions as EC
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-13
        • 1970-01-01
        • 1970-01-01
        • 2022-08-11
        • 1970-01-01
        • 1970-01-01
        • 2020-03-30
        相关资源
        最近更新 更多