继续滚动一个部分,直到父标记属性在 Selenium WebDriver 中为 "disabled"
Keep scrolling a section until parent tag attribute is "disabled" in Selenium WebDriver
我的应用程序有几个带图片的部分,每个部分都有一个滚动条 link 可以向右滚动
<div class="owl-next">
<i class="fa fa-angle-right">
当您无法再滚动时,div class 属性更改为“owl-next-disabled”。我希望能够滚动到每个部分的最后一张图片。我已经能够在下面的代码中使用一个 'for' 循环来遍历 div webelements 但在循环中我只能在元素未找到异常抛出之前单击一次,因为 owl-未找到下一个禁用的。
List<WebElement> divtag=driver.findElements(By.xpath("//div[@class='owl-next']"));
Thread.sleep(1000);
int i=1;
if(divtag!=null)
{
for(WebElement clickright:divtag)
{
WebElement rightscroll=driver.findElement(By.xpath("//div/i[@class='fa fa-angle-right']"));
rightscroll.click();
WebElement ele=driver.findElement(By.xpath("//div/i[@class='owl-next disabled']"))!=null)
}
}
}
如何滚动直到 div 标签的属性为 'owl-next disabled'?
问题是这样的:
- 您点击 () 向右滚动。
- 您试图找到 'owl-next disabled',但找不到,因为您需要滚动更多
-
你想要的是检查一个元素是否存在,如果不存在继续点击向右走。 findElement() 必须找到一个元素,否则它会抛出错误,findElements() 给出一个可能为空的列表。
for(WebElement clickright : divtag)
{
while(true){
WebElement rightscroll=driver.findElement(By.xpath("//div/i[@class='fa fa-angle-right']"));
rightscroll.click();
List<WebElement> endList = driver.findElement(By.xpath("//div/i[@class='owl-next disabled']"))!=null);
if(endList.Count() == 0)
break;
}
}
添加一个 'safety',如有必要,它会在 100 次右键单击后停止
while(true)
{
WebElement parent = clickright.findElement(By.xpath("./.."));
if(parent.getAttribute("class").equalsIgnoreCase("owl-next disabled"))
break;
System.out.println(clickright.getAttribute("class"));
clickright.click();
}
已检索到父标签并与禁用的文本进行比较,现在可以使用了。
我的应用程序有几个带图片的部分,每个部分都有一个滚动条 link 可以向右滚动
<div class="owl-next">
<i class="fa fa-angle-right">
当您无法再滚动时,div class 属性更改为“owl-next-disabled”。我希望能够滚动到每个部分的最后一张图片。我已经能够在下面的代码中使用一个 'for' 循环来遍历 div webelements 但在循环中我只能在元素未找到异常抛出之前单击一次,因为 owl-未找到下一个禁用的。
List<WebElement> divtag=driver.findElements(By.xpath("//div[@class='owl-next']"));
Thread.sleep(1000);
int i=1;
if(divtag!=null)
{
for(WebElement clickright:divtag)
{
WebElement rightscroll=driver.findElement(By.xpath("//div/i[@class='fa fa-angle-right']"));
rightscroll.click();
WebElement ele=driver.findElement(By.xpath("//div/i[@class='owl-next disabled']"))!=null)
}
}
}
如何滚动直到 div 标签的属性为 'owl-next disabled'?
问题是这样的:
- 您点击 () 向右滚动。
- 您试图找到 'owl-next disabled',但找不到,因为您需要滚动更多
你想要的是检查一个元素是否存在,如果不存在继续点击向右走。 findElement() 必须找到一个元素,否则它会抛出错误,findElements() 给出一个可能为空的列表。
for(WebElement clickright : divtag)
{
while(true){
WebElement rightscroll=driver.findElement(By.xpath("//div/i[@class='fa fa-angle-right']"));
rightscroll.click();
List<WebElement> endList = driver.findElement(By.xpath("//div/i[@class='owl-next disabled']"))!=null);
if(endList.Count() == 0)
break;
}
}
添加一个 'safety',如有必要,它会在 100 次右键单击后停止
while(true)
{
WebElement parent = clickright.findElement(By.xpath("./.."));
if(parent.getAttribute("class").equalsIgnoreCase("owl-next disabled"))
break;
System.out.println(clickright.getAttribute("class"));
clickright.click();
}
已检索到父标签并与禁用的文本进行比较,现在可以使用了。