【问题标题】:Selenium Python Using find elements how do i get the text value of each elementSelenium Python使用查找元素如何获取每个元素的文本值
【发布时间】:2018-02-01 18:13:00
【问题描述】:

我在 Python 中使用 Selenium Webdriver。 我有一个显示产品列表的搜索结果页面。
我想遍历列表并打印出 h2 标签的文本值。 例如。它应该打印出 F1 2015 (PS4) 我知道我应该使用 self.driver_find_elements 将所有元素放入列表中。 然后我应该使用 for 循环遍历并打印出它的值。 我的代码不起作用。它打印出对象表示的列表。它不会打印出 F1 2015 (PS4)

这是我的 selenium python 代码:

 def click_search(self):
    search_field = self.driver.find_element(By.XPATH, '//*[@id="twotabsearchtextbox"]')
    search_field.send_keys("F1")
    search_button = self.driver.find_element(By.XPATH, './/*[@id="nav-search"]/form/div[2]/div/input').click()
    searchresults_text = self.driver.find_elements(By.XPATH, '//div[@class="a-row a-spacing-small"]//a/h2')
    print searchresults_text
    for i in searchresults_text:
        print searchresults_text

html sn-p 是:

<div class="a-row a-spacing-small">
<a class="a-link-normal s-access-detail-page a-text-normal"  href="http://localhost:8080/testurl/i=1437258749&sr=8-1&keywords=f1" title="F1 2015 (PS4)">
<h2 class="a-size-medium a-color-null s-inline s-access-title a-text-normal">F1 2015 (PS4)</h2>
</a>

控制台的输出是:

<selenium.webdriver.remote.webelement.WebElement object at 0x0282F290>,       
<selenium.webdriver.remote.webelement.WebElement object at 0x0282F2B0>,     
<selenium.webdriver.remote.webelement.WebElement object at 0x0282F2D0>]

Process finished with exit code 0

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    searchresults_text 的第一个元素绑定到i,但您从不使用它并尝试打印searchresults_text。此外,要获取文本内容,您可以使用text 属性:

    for el in searchresults_text:
       print el.text
    

    【讨论】:

    • 太棒了。现在可以了。我现在得到了想要的输出。 F1 2015 (PS4) F1 2015、F1 2014 (PS3)、F1 2013 (PS3)、F1 2012 (Xbox 360)、F1 2011 (Xbox 360)。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 2018-10-12
    相关资源
    最近更新 更多