Selenium Python使用find元素如何获取每个元素的文本值

时间:2015-07-18 22:52:19

标签: python selenium selenium-webdriver

我正在使用Selenium Webdriver和Python。 我有一个搜索结果页面,显示产品列表 我想遍历列表并打印出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片段是:

<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

1 个答案:

答案 0 :(得分:4)

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

for el in searchresults_text:
   print el.text