显式等待不起作用,但是time.sleep起作用

时间:2019-12-17 06:56:37

标签: python-3.x selenium-webdriver pytest wait

我试图在显式等待的帮助下单击 Group 名称,但是我每次都看到两个错误消息“ ElementClickInterceptedException”和“ NoSuchElementException”之一(即使我使用了ignore_exceptions) ),但是time.sleep()的幼稚方法效果很好,我知道这是一种不好的做法。有人可以帮助我进行明确的等待。

最糟糕的部分是错误消息之前,它甚至没有等待10秒。

我正在使用pytest框架。

代码如下:

def test_assignscans(driver):
    eng_tab = driver.find_element_by_xpath("//p[contains(text(),'Engagements')]")
    eng_tab.click()
    # time.sleep(2)
    wait = WebDriverWait(driver, 10, poll_frequency=1, 
    ignored_exceptions= 
    [NoSuchElementException,ElementClickInterceptedException])                                                                 
    group = wait.until(
    EC.element_to_be_clickable((By.XPATH, 
    "//p[contains(text(),'Engagement111')]")))
    group.click()
    # time.sleep(2)
    scan1 = driver.find_element_by_xpath("//span[text()='npm']")
    scan1.click()
    scan2 = driver.find_element_by_xpath("//span[text()='Retire']")
    scan2.click()
    scan3 = 
    driver.find_element_by_xpath("//span[text()='whitesource']")
    scan3.click()
    scan4 = driver.find_element_by_xpath("//span[text()='snyk']")
    scan4.click()
    assign_scan = driver.find_element_by_xpath("//i[@class='el-icon- 
    arrow-right']")
    assign_scan.click()
    # time.sleep(3)

0 个答案:

没有答案