【问题标题】:Delete a record from web table scenario in Selenium Webdriver从 Selenium Webdriver 中的 Web 表场景中删除记录
【发布时间】:2021-10-31 18:02:58
【问题描述】:

我正在编写一个自动化脚本,我希望自动化的场景之一是从网格中删除一条记录,现在我正在做的是找到网格中删除按钮列表的 xpath,我正在点击一个“if”条件,我声明如果删除按钮显示在页面上,则删除第一条记录,否则 driver.close();但我猜 Selenium 没有检查条件,它直接向我显示 NoSuchElement 异常。有人可以建议我一种更好的方法或其他替代方案来自动化这种情况。我正在使用的代码:=

    //resourceSchedulePage - Class object
    //clickDeleteResourceScheduleDataBtn() - method that returns the WebElement
    schedulerPage.clickResourceSchedule().click();
    logger.info("Resource schedule link is clicked");
    Thread.sleep(500);
    if(resourceSchedulePage.clickDeleteResourceScheduleDataBtn().isDisplayed())
    {
        resourceSchedulePage.clickDeleteResourceScheduleDataBtn().click();
        Thread.sleep(500);
    }
    else
    {
        driver.close();
    }

实施:

@FindBy(xpath="//*[@id=\"gridResourceSchedule\"]//td[6]/a[2]") 
WebElement deleteResourceScheduleBtn; 

public WebElement clickDeleteResourceScheduleDataBtn() throws InterruptedException { 
      synchronized (driver) { 
          driver.wait(1000); } 
     return deleteResourceScheduleBtn; }

【问题讨论】:

  • 这是一个网络元素clickDeleteResourceScheduleDataBtn,向我们展示你是如何实现它的。
  • @FindBy(xpath="//*[@id=\"gridResourceSchedule\"]//td[6]/a[2]") WebElement deleteResourceScheduleBtn;公共 WebElement clickDeleteResourceScheduleDataBtn() 抛出 InterruptedException { return deleteResourceScheduleBtn; }

标签: java selenium selenium-webdriver ui-automation browser-automation


【解决方案1】:

正如@pburgr 所解释的,这里是findElements 的实现

if (driver.findElements(By.xpath("Delete button xpath")).size() > 0 ) {
    System.out.println("Delete button is avilable");
    // you can click on delete here, or whatever you wanna do. 
}
else {
    System.out.println("Delete button isn't avilable");
    driver.close();
}

还有一种方法可以处理这种情况,即try catch 块。

【讨论】:

    【解决方案2】:

    element.isDisplayed() 只能用于现有元素。仅当找到元素但未显示(hidden=true f.e.)时才返回false。 要检查元素是否存在,你可以使用List<WebElement> elements = driver.findElements(...); 如果没有找到元素,你会得到空列表而不是NoSuchElementException

    【讨论】:

    • 所以我的情况是,如果网格中确实存在记录,我希望从网格中删除记录,如果网格中不存在记录,我希望浏览器关闭时else 条件出现在图片中,所以你能建议我写一个脚本来运行这个场景吗
    • @ChinmayBhagat :你需要再读一遍他写的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    相关资源
    最近更新 更多