Javascript 等待。直到(预期条件。元素可禁用)不工作
我需要通过页面中的定位器获取所有元素,并从中确定可单击的元素Javascript 等待。直到(预期条件。元素可禁用)不工作,javascript,java,html,selenium,Javascript,Java,Html,Selenium,我需要通过页面中的定位器获取所有元素,并从中确定可单击的元素 屏幕截图,以便更好地理解: 不可见元素 可见和可点击的元素 带有a.quick-view元素的html代码: <a href="http://prestashop-automation.qatestlab.com.ua/ru/blouses/2-7-blouse.html#/1-size-s/11-color-black" class="thumbnail product-thumbnail"> <
- 屏幕截图,以便更好地理解:
- 带有
元素的html代码:a.quick-view
因此,在“调试”行中,我始终为true,但元素不可单击且不显示 我不需要勾选每个元素-我只需要勾选clickable属性 问题:<a href="http://prestashop-automation.qatestlab.com.ua/ru/blouses/2-7-blouse.html#/1-size-s/11-color-black" class="thumbnail product-thumbnail"> <img src="http://prestashop-automation.qatestlab.com.ua/7-home_default/blouse.jpg" alt="" data-full-size-image-url="http://prestashop-automation.qatestlab.com.ua/7-large_default/blouse.jpg"> </a> <div class="product-description"> <h1 class="h3 product-title" itemprop="name"><a href="http://prestashop-automation.qatestlab.com.ua/ru/blouses/2-7-blouse.html#/1-size-s/11-color-black">Blouse</a></h1> <div class="product-price-and-shipping"> <span itemprop="price" class="price">26,99 ₴</span> </div> </div> <ul class="product-flags"> </ul> <div class="highlighted-informations hidden-sm-down"> //============================ <a href="#" class="quick-view" data-link-action="quickview"> //Searching element <i class="material-icons search"></i> Быстрый просмотр </a> //============================= <div class="variant-links"> <a href="http://prestashop-automation.qatestlab.com.ua/ru/blouses/2-8-blouse.html#/1-size-s/8-color-white" class="color" title="White" style="background-color: #ffffff"><span class="sr-only">White</span></a> <a href="http://prestashop-automation.qatestlab.com.ua/ru/blouses/2-9-blouse.html#/2-size-m/11-color-black" class="color" title="Black" style="background-color: #434A54"><span class="sr-only">Black</span></a> <span class="js-count count"></span> </div> </div>
如何按可单击属性检查元素我不确定您所说的可单击属性到底是什么意思。从技术上讲,页面上的所有内容都是可单击的元素。例如,您可以单击文本,但不会发生任何事情。 以下是元素不可单击的唯一原因,即如果像这样使用禁用属性:<button type="button" disabled>Click Me!</button>
以下是禁用属性的一些链接: 但是,在您的情况下,您指的是一个锚定标记,它总是可以单击,但可以通过三种方式禁用(禁用是指当您单击它时,不会发生任何事情):点击我!
- 未设置“href”属性
- 被css禁用
- href set或onclick set返回false:
我不确定你所说的可点击属性到底是什么意思。从技术上讲,页面上的所有内容都是可单击的元素。例如,您可以单击文本,但不会发生任何事情。 以下是元素不可单击的唯一原因,即如果像这样使用禁用属性:
<button type="button" disabled>Click Me!</button>
点击我!
以下是禁用属性的一些链接:
但是,在您的情况下,您指的是一个锚定标记,它总是可以单击,但可以通过三种方式禁用(禁用是指当您单击它时,不会发生任何事情):
selenium的可点击性意味着它是可见的且已启用: 因此,您所要做的就是检查webElement是否为isDisplayed()&isEnabled()
List webElements=driver.findElements(By.xpath(“//a[@class='quick-view']);
对于(WebElement e:webElements){
如果(e.isDisplayed()&e.isEnabled()){
System.out.println(e.getAttribute(“href”);
}
}
selenium的可点击性意味着它是可见的且已启用:
因此,您所要做的就是检查webElement是否为isDisplayed()&isEnabled()
List webElements=driver.findElements(By.xpath(“//a[@class='quick-view']);
对于(WebElement e:webElements){
如果(e.isDisplayed()&e.isEnabled()){
System.out.println(e.getAttribute(“href”);
}
}
什么异常?@昆仑对不起,异常在其他地方执行。我没有编辑问题只有当你将光标移到上面时,快速查看才可见吗?什么异常?@KunLun对不起,异常在其他地方执行。我问了一个问题:只有将光标移到上面,快速查看才会显示吗?
List<WebElement> webElements = driver.findElements(By.xpath("//a[@class='quick-view']"));
for (WebElement e :webElements) {
if (e.isDisplayed() && e.isEnabled()) {
System.out.println(e.getAttribute("href"));
}
}