簡體   English   中英

使用Selenium Java為過濾器窗格“鉛筆圖標”定位元素時出現問題

[英]Problem locating the element for a filter pane 'pencil Icon' using Selenium Java

我正在商業智能儀表板上。 在過濾器窗格上,它們都有一個鉛筆圖標,您可以單擊以編輯該特定過濾器。 問題是所有12個過濾器都具有相同的元素。 我該如何選擇單個濾紙? <div class="ew-i-fx ew-i-act f-act" data-ng-click="levelMainAction($event, level, $index)" data-ng-show="!item.disabled &amp;&amp; !item.locked" data-ng-class="{running: opened.edit == 'l'+$index}" data-translate="" data-translate-attr-title="we.actions.editfilter" title="Edit Filter"></div>

在此處輸入圖片說明

如果所有過濾器的所有屬性都相同,並且過濾器的位置沒有變化,則可以使用索引來標識過濾器。
您可以使用下面的xpath查找元素並相應地更改索引值:

WebElement element = driver.findElement(By.xpath("(//div[@title='Edit Filter'])[1]"));

對於每個圖標,我確定在左側都必須有與之關聯的文本或標簽或標題。

例如 -

篩選器名稱1 ----圖標

篩選器名稱2 ----圖標

等等...

您需要做的是首先找到“過濾器名稱1”元素,然后找到與其關聯的下一個圖標。

如果您可以在帖子中添加更多詳細信息以顯示過濾器名稱及其HTML代碼,將很有幫助。

基本上是上面/之前的HTML

<div class="ew-i-fx ew-i-act f-act" data-ng-click="levelMainAction($event, level, $index)" data-ng-show="!item.disabled &amp;&amp; !item.locked" data-ng-class="{running: opened.edit == 'l'+$index}" data-translate="" data-translate-attr-title="we.actions.editfilter" title="Edit Filter"></div>

如果確定具有相同屬性的元素:By.xpath(“(// div [@ title ='Edit Filter']))並且不止一個,請通過以下方式收集它們:

import java.util.List;
import org.openqa.selenium.WebElement;

List<WebElement> elements = driver.findElements(By.xpath("(//div[@title='Edit Filter']));

然后使用indexValue獲取所需的元素:

int indexValue = 1;
elements.get(indexValue).click();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM