0
wait = WebDriverWait(driver,30).until(lambda driver: driver.find_element_by_xpath('//tbody/tr[296]/td/div'))

据我了解,这将等待 xpath 加载或超时 30 秒。3/7 次左右,我的程序会失败并说找不到这个 div,但我不知道为什么。我想也许它没有加载,所以我尝试了这段代码,以及 driver.implicitly_wait(30),但有时它仍然找不到 xpath。

编辑:这是我的代码

def testPolicy(self):
    driver = self.driver
    driver.get('website')
    wait = WebDriverWait(driver,20).until(lambda driver: driver.find_element_by_name('accessFrame'))
    driver.switch_to_frame('accessFrame')
        driver.find_element_by_name('adminName').send_keys('jacob')
        driver.find_element_by_name('pass').send_keys('123')
        driver.find_element_by_xpath('//*[@id="ext-gen1009"]/form/table/tbody/tr[8]/td/input').click()
        wait = WebDriverWait(driver,20).until(lambda driver: driver.find_element_by_id('navigationButton-btnInnerEl'))
        driver.find_element_by_id('button-1034-btnInnerEl').click() 
        nav = driver.find_element_by_id('navigationButton-btnInnerEl')
        if nav.text == 'Classic':
            nav.click()       
        wait = WebDriverWait(driver,30).until(lambda driver: driver.find_element_by_xpath('//tbody/tr[296]/td/div'))
        policy = driver.find_element_by_xpath('//tbody/tr[296]/td/div')
        print policy.text
        assert policy.text == 'Policies'
        policy.click()
        wait = WebDriverWait(driver,30).until(lambda driver: driver.find_element_by_xpath('//span[text()="Add Folder"]'))
        driver.find_element_by_xpath('//span[text()="Add Folder"]').click()
        alert = driver.switch_to_alert()       
        rand = random.choice(range(100))
        driver.find_element_by_id('ext-gen1001').send_keys('autoPolicy'+str(rand))
        driver.find_element_by_id('button-1009-btnInnerEl').click()
        driver.refresh()
        driver.implicitly_wait(15)
        folder = 'autoPolicy'+str(rand)
        print folder
        driver.find_element_by_xpath('//div[text()=folder]')
        driver.find_element_by_xpath('//span[text()="Add Policy"]').click()  

由于某种原因,我似乎无法获得 html,但这基本上就是我正在查看的内容

<tr class='x-grid-row' data-qtip'= 'Name'> .. </tr>

100 行这些,我想要的代码在其中之一内

<div class='x-grid-cell-inner- x-unselectable' ........>Name</div>

我没有任何好的方法来搜索这个元素,所以我使用直接 xpath。对于这 100 个 TR,它们基本上都是指向我正在测试的 Web 应用程序上的模块的链接。我的代码使树全部展开,在此期间,我有 webdriverwait 等待我要单击的模块。视觉上它几乎立即加载,因此很难说元素在定位之前超时。

4

0 回答 0