第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

通過(guò) xpath 獲取特定類的最后添加元素到 DOM

通過(guò) xpath 獲取特定類的最后添加元素到 DOM

哈士奇WWW 2021-09-15 10:52:10
我的網(wǎng)站生成任意數(shù)量的彈出窗口(請(qǐng)不要評(píng)判我的監(jiān)控策略)。每個(gè)彈出窗口都是一個(gè)復(fù)雜的 div,我最終希望通過(guò) xpath 引用它,但我特別想要添加到 DOM 的最后一個(gè),因?yàn)樗鼘⑹亲钌厦娴哪莻€(gè)。所以我試過(guò)這個(gè)//*[@class="popupContent"][last()]我知道我可以試試這個(gè)(//*[@class="popupContent"])[2]但我不知道有多少這些彈出窗口。但是在屏幕上同時(shí)有多個(gè)彈出窗口的情況下,我會(huì)得到第一個(gè)的引用(我不確定這是否可靠)。這些彈出窗口中的每一個(gè)都有一個(gè) popupContainer,但對(duì)于這個(gè)問(wèn)題,它是不受限制的。鑒于此類中有多個(gè)元素,我如何才能獲得最上面的元素(因此是交互式的)?這些東西不是兄弟姐妹、孩子或彼此的父母。此外,我不知道在任何給定時(shí)間頁(yè)面上存在多少。除了我知道其中一個(gè)內(nèi)部組件 (popupContent) 的類之外,我也無(wú)法控制彈出窗口的內(nèi)容或結(jié)構(gòu)。如果這是不可能的,請(qǐng)解釋原因。我正在尋找在 Java Selenium 測(cè)試環(huán)境中兼容的解決方案。請(qǐng)不要jquery。
查看完整描述

3 回答

?
滄海一幻覺(jué)

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

根據(jù)這個(gè)問(wèn)題:Do WebDriver findElements 在其檢索時(shí)保留表行順序findElements 保證順序,因此在 Selenium 環(huán)境中,我可以從中獲取列表并檢索最后一項(xiàng)。


List<WebElement> popups = findElements(By.classname("popup"));

WebElement activePopup = popups.get(popups.size - 1);


查看完整回答
反對(duì) 回復(fù) 2021-09-15
?
繁華開(kāi)滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

另一種方法可能是查找具有最高 z-index 值的彈出窗口:


private WebElement getTopPopUp() {

    List<WebElement> allPopUps = driver.findElements(By.classname("popup"));

    WebElement topPopUp = allPopUs.get(0);

    for(WebElement popUp : allPopUs) {

        if(Integer.parseInt(popUp.getCssValue("z-index")) > Integer.parseInt(topPopUp.getCssValue("z-index"))) {

            topPopUp = popUp;

        }

    }

    return topPopUp;

}


查看完整回答
反對(duì) 回復(fù) 2021-09-15
?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

Xpath(//*[@class="popupContent"])[last()]和下面的代碼應(yīng)該給你相同的結(jié)果 - DOM 中的最后一個(gè)元素:


List<WebElement> popups = driver.findElements(By.className("popup"));

WebElement activePopup = popups.get(popups.size - 1);

如果最后一個(gè)元素不是最上面的元素,請(qǐng)嘗試獲取焦點(diǎn)元素:


WebElement focused = driver.switchTo().activeElement();

if (focused.getAttribute("class").equals("popupContent"))

    //my active/interactive popup

您可以檢查最后一個(gè)現(xiàn)在是否處于活動(dòng)狀態(tài):


WebElement lastOne = driver.findElement(By.xpath("(//*[@class="popupContent"])[last()]"));

if (lastOne.equals(driver.switchTo().activeElement()))

//last one is active


查看完整回答
反對(duì) 回復(fù) 2021-09-15
  • 3 回答
  • 0 關(guān)注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)