我有一個帶有圖片的幾個部分的應用程式,每個部分都有一個向右滾動的滾動鏈接
<div >
<i >
當您無法再滾動時,div 類屬性會更改為“owl-next-disabled”。我希望能夠滾動到每個部分的最后一張圖片。我已經能夠想出下面的代碼,其中包含一個“for”回圈來回圈遍歷 div webelements,但在回圈內,我只能單擊一次,然后在拋出元素未找到例外之前單擊一次,因為未找到 owl-next disabled'。
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”?
uj5u.com熱心網友回復:
問題是這樣的:
- 您單擊() 向右滾動。
- 您嘗試找到“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;
}
}
添加一個“安全”,必要時在 100 次右鍵單擊后停止
uj5u.com熱心網友回復:
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();
}
檢索父標簽并與禁用文本進行比較,現在可以正常作業了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/365969.html
