在python中使用xpath检索列表元素
我不熟悉SeleniumXPath,下面是我尝试过的代码。它根本不进入循环。我认为这条路是对的。有人能帮忙吗?提前谢谢在python中使用xpath检索列表元素,python,selenium,xpath,Python,Selenium,Xpath,我不熟悉SeleniumXPath,下面是我尝试过的代码。它根本不进入循环。我认为这条路是对的。有人能帮忙吗?提前谢谢 a = driver.find_elements_by_xpath('//*[@class="one"]/ul/li') for li in a: xval = driver.find_element_by_xpath('.div/text()')` 你好 你好 再见 在selenium中,通过xpath()查找元素方法应返回WebElement,但不返回
a = driver.find_elements_by_xpath('//*[@class="one"]/ul/li')
for li in a:
xval = driver.find_element_by_xpath('.div/text()')`
- 你好
- 你好
- 再见
在selenium
中,通过xpath()查找元素方法应返回WebElement
,但不返回文本内容
试着替换
xval = driver.find_element_by_xpath('.div/text()')
与
还要注意,您应该使用/div
而不是.div
来匹配当前元素的直接子元素div
更新
如果循环不进行迭代,请尝试等待,DOM
中出现requireddiv
,因为它可能是动态生成的:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By. XPATH, "//div[@class="one" and ./ul/li])))
可以通过查询父元素来搜索子元素。还要检查父元素的长度,它有什么吗
a = driver.find_elements_by_xpath('//*[@class="one"]/ul/li')
print len(a)
for li in a:
xval = li.find_element_by_xpath('div/text()')
非常感谢。我做了那些改变。但它并没有首先进入循环。为什么呢?
a = driver.find_elements_by_xpath('//*[@class="one"]/ul/li')
print len(a)
for li in a:
xval = li.find_element_by_xpath('div/text()')