我的代码是否正确?我不认为它的工作

时间:2013-06-19 23:22:57

标签: python selenium webdriver

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

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

编辑:这是我的代码

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。在视觉上它几乎立即加载,因此在定位之前很难说元素超时。

0 个答案:

没有答案