从 Selenium Webdriver 中的 Web 表场景中删除记录
Posted
技术标签:
【中文标题】从 Selenium Webdriver 中的 Web 表场景中删除记录【英文标题】:Delete a record from web table scenario in Selenium Webdriver 【发布时间】: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;
【参考方案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 :你需要再读一遍他写的东西。以上是关于从 Selenium Webdriver 中的 Web 表场景中删除记录的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Selenium Webdriver 和 Python 从这个非选择下拉菜单中选择这个元素
从python中的Selenium Webdriver实例获取文本[重复]
无法使用 java 从 selenium webdriver 中的 excel 表中获取数值
从 selenium WebDriver 中的 src 获取背景颜色
selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等