如何使用 selenium webdriver 进行强制页面刷新?

Posted

技术标签:

【中文标题】如何使用 selenium webdriver 进行强制页面刷新?【英文标题】:How to do a forced page refresh using selenium webdriver? 【发布时间】:2012-01-14 04:11:42 【问题描述】:

在我的自动化中,有一次我必须刷新页面以获取更新的页面内容。但是在刷新期间,网页要求确认重新发送数据(基本上页面上会显示警报)。

即使我将焦点切换到警报并接受它,页面内容也没有得到刷新。如果我手动执行相同操作,页面内容会被刷新。

除了 navigate().refresh() 命令之外,还有其他方法可以使用 Selenium Webdriver 刷新页面吗?

或者有什么方法可以在不接受警报的情况下单击警报上的重试按钮??

【问题讨论】:

为什么 navigate().refresh() 不能满足您的需求? 我在 IE8 中测试这个场景,navigation().refresh() 没有刷新页面内容。 您是否尝试过在任何 Selenium 用户组上发帖?也许这是一个已知的错误...... 同样的问题在这里有一个很棒的答案***.com/questions/10245641/… 【参考方案1】:

使用 Java 在 Selenium Webdriver 中刷新页面:

public boolean refresh()


    boolean executedActionStatus = false;       
    try

        ((javascriptExecutor)driver).executeScript("document.location.reload()");

        Thread.sleep(2000);
        executedActionStatus = true;
    
    catch(Exception er)
           
        er.printStackTrace();
        getScreenShot(method_TableName, "ExpCaseShot");
        log.error(er);
           
    return executedActionStatus;

【讨论】:

【参考方案2】:

在 ruby​​ 中尝试使用这个 - @driver.switch_to.alert.accept

这将点击重新发送

java代码driver.switchTo().alert().accept();

【讨论】:

以上是关于如何使用 selenium webdriver 进行强制页面刷新?的主要内容,如果未能解决你的问题,请参考以下文章

Selenium & webdriver.io 如何使用 executeScript?

如何使用selenium webdriver来判断一个网页加载完毕

如何使用 C# 在 Selenium WebDriver (Selenium 2) 中最大化浏览器窗口?

如何在 ruby​​ 中使用 Selenium WebDriver (selenium 2.0) 客户端设置选项

如何在 Java 中使用 Selenium WebDriver (Selenium 2) 输入文本框?

如何使用Python避免Selenium Webdriver中的SSL认证错误?