簡體   English   中英

如何展開列表並選擇動態值。

[英]How Can I expand the list and choose dynamic value.

我正在嘗試找出解決方案如何從下面的代碼中獲取Prod2Add New目標。

要首先獲得此目標,我必須單擊ptv-icon ptv-collapse-icon 這可以使用XPATH,但每次運行腳本xpath都在改變。

是否可以使用任何方法直接本地化Add New

另一個問題是:只有點擊ptv-icon ptv-collapse-icon后才能看到添加新元素。

<li class="ptv-listitem" data-id="1">
<div class="ptv-item">
<span class="ptv-icon ptv-expand-icon"></span>
<span class="ptv-text">
<span class="tree-text">Prod1</span>
<span class="tree-counts"></span>
</span>
</div>
</li>
<li class="ptv-listitem" data-id="2">
<div class="ptv-item">
<span class="ptv-icon ptv-collapse-icon"></span>
<span class="ptv-text ptv-selected">
<span class="tree-text">Prod2</span>
<span class="tree-counts"></span>
</span>
</div>
<ul class="ptv-list ptx-expanded">
<li class="ptv-listitem" data-id="-1">
<div class="ptv-item">
<span class="ptv-text">
<span class="tree-text">**Add New**</span>
<span class="tree-counts"></span>
</span>
</div>
</li>
</ul>
</li

您可以通過兩個ul類和一個span類來選擇元素:

WebDriver.findElement(By.cssSelector("ul.ptv-list.ptx-expanded span.tree-text")).click()

這意味着選擇一個具有tree-text類的span元素,該元素位於具有ptv ptv-listptx-expanded類的ul元素中。

(假設你正在使用Java)你應該嘗試使用帶有文本的xpath ,它永遠不會改變如下: -

//to click on prod2
driver.findElement(By.xpath(".//li[contains(.,'Prod2')]//span[@class = 'ptv-icon ptv-expand-icon']").click();

//to click on add new
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath(".//li[contains(.,'Add New')]"))).click();

暫無
暫無

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

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