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

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

在執(zhí)行實(shí)際操作之前對(duì) Web 元素進(jìn)行一些標(biāo)準(zhǔn)驗(yàn)證

在執(zhí)行實(shí)際操作之前對(duì) Web 元素進(jìn)行一些標(biāo)準(zhǔn)驗(yàn)證

至尊寶的傳說 2023-12-13 16:28:56
正如標(biāo)題所示,我在實(shí)際操作之前對(duì)網(wǎng)絡(luò)元素進(jìn)行一些標(biāo)準(zhǔn)檢查。檢查該元素是否顯示并啟用。我想將這兩個(gè)檢查分開,因?yàn)槲蚁胍粋€(gè)失敗的具體原因。我覺得下面的代碼太長(zhǎng)了。任何建議將不勝感激。Boolean isActionSuccess = false;         if (currentObject.isDisplayed()) {            if (currentObject.isEnabled()) {                // move to the object before clicking                CommonFunctions.silentWait(1);                actionToE.moveToElement(currentObject).perform();                if (!actionPar.isEmpty()) {                    // do something else                } else {                    currentObject.sendKeys(Keys.ARROW_UP);                    isActionSuccess = true;                }            } else {                System.out.println("Web Element is disabled!");            }        } else {            System.out.println("Web Element is not displayed!");        }
查看完整描述

3 回答

?
ITMISS

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

這里最好的做法是將它們分成自己的小函數(shù)并返回布爾值。喜歡


Boolean isElementDisplayed(WebElement element){

    if (element.isDisplayed())

        return true;

    System.out.println(element + " is not displayed!");

    return false;

}


Boolean isElementEnabled(WebElement element){

    if (element.isEnabled())

        return true;

    System.out.println(element + " is not enabled!");

    return false;

}

但我還建議在執(zhí)行 moveToElement 之后調(diào)用 isElementDisplayed,因?yàn)槟承g覽器對(duì)“顯示”的含義有不同的考慮。


您還可以使用 try catch 來記錄每個(gè)函數(shù)的異常。


查看完整回答
反對(duì) 回復(fù) 2023-12-13
?
天涯盡頭無女友

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

  Boolean isActionSuccess = false; 

        CommonFunctions.silentWait(1);

        actionToE.moveToElement(currentObject).perform();


        if (CommonFunctions.isElementDisplayed(currentObject)) {

            if (CommonFunctions.isElementEnabled(currentObject)) {

                if (!actionPar.isEmpty()) {

                    // do something

                    }

                } else {

                    currentObject.sendKeys(Keys.ARROW_LEFT);

                    isActionSuccess = true;

                }


            }

        }


查看完整回答
反對(duì) 回復(fù) 2023-12-13
?
開滿天機(jī)

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

在使用Selenium執(zhí)行自動(dòng)化測(cè)試時(shí),您不需要在實(shí)際操作之前對(duì) Web 元素進(jìn)行任何額外的標(biāo)準(zhǔn)檢查。根據(jù)記錄,每增加一行代碼都會(huì)導(dǎo)致額外的指令和指令周期。相反,您需要優(yōu)化您的代碼/程序。

如果你的用例是調(diào)用click()或者sendKeys()不需要調(diào)用isDisplayed()或者isEnabled()單獨(dú)去檢查。相反,您需要結(jié)合使用WebDriverWait和ExpectedConditions來等待預(yù)定義的時(shí)間段(根據(jù)測(cè)試規(guī)范)。

例子:

  • presenceOfElementLocated()是檢查頁面 DOM 上是否存在元素的期望。這并不一定意味著該元素是可見的。

    new?WebDriverWait(driver,?20).until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("button.nsg-button")));
  • visibilityOfElementLocated()是檢查元素是否存在于頁面 DOM 上并且可見的期望??梢娦允侵冈夭粌H能顯示,而且高度和寬度都大于0。

    new?WebDriverWait(driver,?20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("button.nsg-button")));
  • elementToBeClickable()是檢查元素是否可見并啟用以便您可以單擊它的期望。

    new?WebDriverWait(driver,?20).until(ExpectedConditions.elementToBeClickable(By.xpath("http://button[@class='nsg-button']"))).click();



查看完整回答
反對(duì) 回復(fù) 2023-12-13
  • 3 回答
  • 0 關(guān)注
  • 188 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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