在元素 selenium python chrome 驱动程序中查找元素

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


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

结果:[]


请建议我该怎么做才能做到这一点,如何在元素中获取元素详细信息?


长风秋雁
浏览 180回答 2
2回答

RISEBY

此行代码的问题: element_text = element.find_elements_by_xpath(".//div[@class='WP0F WN0F']//div[@class='WDQY']//ul[@class='WHDR WCQY']").text查找元素的ist 重新调整列表,并且列表没有 .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 comprehentionelement_text= [element.text for element in elements]#or as a for loopelement_text=[]for element in elements:    element_text.append(element.text)

白板的微信

element_list已经包含您要打印的所有元素,即element_text. 你不能WebElement用来定位自己,它没有失败的原因NoSuchElementException是当xpath你从另一个元素中定位元素时,你需要指定当前上下文.find_element_by_xpath('.//div')迭代element_listfor element in element_list:    print(element.text)或者,如果您真的想拆分它,因为您在父列表上有更多可以使用的操作(注意她缩短了element_list xpath)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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python