我正在使用 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
最佳答案
searchresults_text
的第一个元素绑定(bind)到 i
,但您从未使用它并尝试打印 searchresults_text
。此外,要获取文本内容,您可以使用 text
属性:
for el in searchresults_text:
print el.text
关于python - Selenium Python 使用查找元素如何获取每个元素的文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496322/