代码改变世界

自动化测试页面元素被遮挡

2018-02-27 14:25  钱先生  阅读(1212)  评论(0编辑  收藏  举报

注: 以下内容引自 http://blog.csdn.net/zhou331214/article/details/79316872

 

selenium测试中的一些好习惯

原创 2018年02月12日 15:40:48

 

1.对于页面中的一些Button,可能会因为该元素被遮挡或没有展示在可见区域(如在页面底部),此时通过WebElement.Click()可能会触发不了Click事件。我们可以通过执行JS去触发click事件:((JavascriptExecutor)webDriver).executeScript("arguments[0].click();", webElement);

//引者注: 这个试了下,并不工作,需要再研究下.

2.在对一些元素进行操作后,页面发生跳转或加载Ajax的时候,添加一个Wait方法等待page load完成再进行后续操作。方法是在某个时间段内判断document.readyState是不是complete。

 

def isPageLoaded(driver):
    js = "return document.readyState"
    res = driver.execute_script(js)
    return res == "complete"

def waitForPageLoad(driver):
    WebDriverWait(driver, 10).until(isPageLoaded)
注意:在使用WebDriverWait函数时,需要导入:from selenium.webdriver.support.ui import WebDriverWait