ai didi

java - 如何使用 Selenium Webdriver 和 Java 提取元素的显示属性

转载 作者:行者123 更新时间:2023-12-02 01:36:50 24 4
gpt4 key购买 nike

无法定位div中的隐藏元素

<div id="divDuplicateBarcodeCheck" class="spreadsheetEditGui" style="z- 

index: 1200; width: 640px; height: 420px; top: 496.5px; left: 640px;

display:block"> ==$0

我想定位显示元素,但该元素是隐藏的,我也为其编写了代码。

String abc=d.findElement(By.xpath("//div[@id='divDuplicateBarcodeCheck']/"))
.getAttribute("display");
System.out.println(abc);
Thread.sleep(3000);
if(abc.equalsIgnoreCase("block"))
{
d.findElement(By.id("duplicateBarcodeCheck")).click();
System.out.println("duplicate barcode Close");
}
else
{ System.out.println("Barcode selected");}

最佳答案

没有display这样的属性。它是 style 属性的一部分。

您可以找到该元素并获取其属性样式:

String style = d.findElement(By.xpath("//div[@id='divDuplicateBarcodeCheck']")).getAttribute("style");
if(style.contains("block")) {
d.findElement(By.id("duplicateBarcodeCheck")).click();
System.out.println("duplicate barcode Close");
} else {
System.out.println("Barcode selected");}
}

或者您可以直接使用 cssSelector 找到此元素(也可以使用 xpath):

WebElement abc = d.findElement(By.cssSelector("div[id='divDuplicateBarcodeCheck'][style*='display: block']"))

请注意,如果未找到该元素,上面的代码将抛出 NoSuchElementException 。您可以使用 try-catch block 执行类似的操作,就像在 if-else 语句中执行的操作一样,如下所示:

try {
d.findElement(By.cssSelector("div[id='divDuplicateBarcodeCheck'][style*='display: block']"));
d.findElement(By.id("duplicateBarcodeCheck")).click();
System.out.println("duplicate barcode Close");
} catch (NoSuchElementException e) {
System.out.println("Barcode selected");
}

关于java - 如何使用 Selenium Webdriver 和 Java 提取元素的显示属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55114422/

24 4 0
文章推荐: java - 如何在 Activity 类中实现方法
文章推荐: r - 如何将 SpatialPolygons 添加到 R 中的气泡图
文章推荐: web-services - 如何通过 WSO2 代理中的调用方法进行路由?
文章推荐: java - 异常 ParseException 与 Comparator.compare(L, L) 中的 throws 子句不兼容
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com