查找元素中的元素 Selenium Python 铬驱动程序



当我尝试在元素中获取元素时,我遇到了一个问题。我尝试了 2 种方法来实现这一目标,但不幸的是没有成功。

element_list = driver.find_elements_by_xpath("//div[@class='WGGO WKFO']//ul//li[@class='WO0F WHHO WI5 WF2F']//div[@class='WP0F WN0F']//div[@class='WDQY']//ul[@class='WHDR WCQY']")

上面的代码获取所有 DOM 元素列表列表。

方法一:

for element in element_list:
element_text = element.find_element_by_xpath("//div[@class='WP0F WN0F']//div[@class='WDQY']//ul[@class='WHDR WCQY']").text
print(element_text)

当我尝试这样做时,它总是返回我第一个元素的文本而不是相应的元素文本。

在搜索时,我发现了一个链接,有人问了我想要的相同。

Selenium Webdriver 在子元素中查找元素

当我尝试p0deje's答案时,它给了我空白数组。

element_text = element.find_elements_by_xpath(".//div[@class='WP0F WN0F']//div[@class='WDQY']//ul[@class='WHDR WCQY']").text

结果:[]

请建议我该怎么做才能实现这一点,如何获取元素内的元素详细信息?

你的代码在這行有問題:element_text = element.find_elements_by_xpath(".//div[@class='WP0F WN0F']//div[@class='WDQY']//ul[@class='WHDR WCQY']").textist,查找元素会重新调整列表,而列表没有 .text 属性。 尝试遍历返回的列表:

elements = driver.find_elements_by_xpath("//div[@class='WGGO WKFO']//ul//li[@class='WO0F WHHO WI5 WF2F']//div[@class='WP0F WN0F']//div[@class='WDQY']//ul[@class='WHDR WCQY']")
#as a list comprehention
element_text= [element.text for element in elements]
#or as a for loop
element_text=[]
for element in elements:
element_text.append(element.text)

element_list已经包含您要打印的所有元素,即element_text。你不能用WebElement来定位自己,它没有NoSuchElementException失败的原因是,当使用xpath从另一个元素中定位元素时,你需要指定当前的上下文.

find_element_by_xpath('.//div')

迭代element_list

for element in element_list:
print(element.text)

或者,如果您真的想拆分它,因为您可以在父列表中使用更多操作(注意她缩短了element_listxpath(

element_list = driver.find_elements_by_xpath("//div[@class='WGGO WKFO']//ul//li[@class='WO0F WHHO WI5 WF2F']")
for element in element_list:
element_text = element.find_element_by_xpath(".//div[@class='WP0F WN0F']//div[@class='WDQY']//ul[@class='WHDR WCQY']").text
print(element_text)

相关内容

  • 没有找到相关文章

最新更新