我是Selenium的初学者。我想检查并行"div"中的文本。div 的数量每次都会更改。
我用了find_elements_by_xpath('\div[{}][contains(text(),"tex")]'.format()
但是,存在以下错误:
selenium.common.exceptions.NoSuchElementException: Message: no such element:
Unable to locate element: {"method":"xpath","selector":"/html/body/div[1/div[4]/div[4]/div/form/div/div[1]/div[2]/div[2][contains(text(),"FAMILY")]"}
实际上,有一个"家庭"文本(我已经在浏览器中检查过)
你有什么想法吗?
这是我的代码:
while True:
Num_of_Divs = len(browser.find_elements_by_xpath("./html/body/div[1]/div[4]/div[4]/div/form/div/div[1]/div"))-1 # num of divs changes and default value is 1
if Num_of_Divs == 0 :
browser.refresh()
else :
for j in range(1,Num_of_Divs ):
Checker1 = browser.find_element_by_xpath('/html/body/div[1]/div[4]/div[4]/div/form/div/div[1]/div[{}]/div[2][contains(text(),"FAMILY")]'.format(j+1))
Checker2 = browser.find_element_by_xpath('/html/body/div[1]/div[4]/div[4]/div/form/div/div[1]/div[{}]/div[5]'.format(j+1)).text
if (Checker1 == [])&(Checker2 == 'ADULT'):
element1 = browser.find_element_by_xpath('/html/body/div[1]/div[4]/div[4]/div/form/div/div[1]/div[2]/div[7]/input')
element1.click()
element2 = browser.find_element_by_xpath('/html/body/div[1]/div[4]/div[4]/div/form/div/div[2]/div[2]/input[1]')
element2.click()
pass
browser.refresh()
breaking_point = check_exists_by_xpath('/html/body/div[1]/div[4]/div[2]/div[1]/h1')
if breaking_point == True:
print('FINISH!')
break
pass
错误发生在检查器 1 处。
//*[contains(text(), 'FAMILY')]
使用上面的 XPATH 并检查。