簡體   English   中英

如何找到沒有名稱或ID的唯一按鈕?

[英]How to find a unique button that has no name or id?

我有一個網頁,其中包含多個容器,每個容器都有一個標題(fooHeading),名稱(fooName)和一個按鈕(fooButton)。

同一頁上會有多個容器,如下所示:

/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
fooTitle fooButton
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\

每個容器的html與以下內容相同:

<div class="fooHeading">
    <span class="fooName">

        fooTitle

    </span>
    <button class="fooButton"></button>
</div>

FooTitle是唯一會改變的東西。 如何根據fooTitle是唯一單擊fooButton?

我建議使用xpath:

WebElement button = driver.findElement(By.xpath("//span[contains(text(), 'fooTitle')]/../button"));

這將找到一個包含文本fooTitlespan ..div ,然后找到作為div子級的button

我有時在硒中創建腳本時,在我的項目中也遇到了這樣的問題,所有傳統方法都會失敗,例如xpath,css選擇器等。

如果您遇到相同的情況,那么我的方法可能會幫助您,首先您必須從開始檢查按鈕標簽的總計數,然后找到按鈕計數的位置,例如其位置為pos。

List<WebElement> element = driver.findElements(By.tagName("button"));
Iterator<WebElement> itr = element.iterator();
int count=0;
WebElement e = null ;

while(itr.hasNext())
{
    count++;

    e = (WebElement) itr.next();

    if(count==pos)
        break;
}

//System.out.println(count);
//for checking total count without using break in while loop

e.click();

暫無
暫無

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

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