如何使用 Selenium 中的 for 循环与 Python 检查并行 div s 中的文本



我是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 并检查。

最新更新