【问题标题】:Prolonging time after submit Button clicked Selenium webdriver提交按钮单击 Selenium webdriver 后延长时间
【发布时间】:2014-10-16 00:54:27
【问题描述】:

我有一个 Selenium webdriver 的测试用例,我想在其中测试提交按钮在单击后是否被禁用。 pb 是点击后无法断言 if button isEnabled 因为我得到了 Element not found 错误。 (点击后尝试等待但得到同样的错误) 有没有办法在单击按钮后延长操作以便仍然在页面上保留该元素?

  WebElement btn=webdriver.findElement(By.xpath(".//*[@id='submitButton']"));

  btn.click(); 

  assertFalse(btn.isEnabled());

【问题讨论】:

    标签: selenium webdriver


    【解决方案1】:

    创建一个方法来检查页面上是否存在元素,并根据结果返回真或假。示例如下:

    public boolean isElementPresent(WebDriver driver, By by){
    
       try{
    
         driver.findElement(by);
         return true;
    
       }
    
       catch(NoSuchElementException noSuchElementException){
         return false;
       }
    
    
    }
    

    现在,从您的主代码中调用上述方法来查看页面上是否存在元素。示例如下:

    By locatorSubmitButton = By.xpath(".//*[@id='submitButton']");
    WebElement btn=webdriver.findElement(locatorSubmitButton );
    btn.click();
    assertFalse(isElementPresent(webdriver, locatorSubmitButton));
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢,它不起作用。我用了webdriver().navigate().back(),按钮是按下后的状态。
    • 请说明使用webdriver().navigate().back()逻辑的原因?
    • 它使浏览器保持页面的最后状态(我的 btn 被禁用..所以我能够测试 btn)。所以当我回去时,我有禁用 btn 的页面。无法准确解释(可能是 cookie 或....必须做)
    • 您的意思是当您通过点击提交页面时,您被定向到另一个页面,您要返回检查按钮是否被禁用?无论如何,即使您没有被重定向到另一个页面,但页面只是重新加载,您已经失去了对 webElement 的引用,这意味着您必须使用 driver.findElement() 再次查找它
    • 哦!是这样吗?感谢 Erki 的精彩解释。 @Eli:如果是这种情况,请回复。如果是,我们必须在点击操作完成后再次使用btn=webdriver.findElement(locatorSubmitButton );
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多