簡體   English   中英

NoSuchElementError:沒有這樣的元素:無法使用 Selenium Javascript 定位元素

[英]NoSuchElementError: no such element: Unable to locate element using Selenium Javascript

我正在使用 selenium 和 Javascript。當我想點擊一個元素時,我收到了這個錯誤。 我使用了顯式等待,但沒有幫助。 誰能幫我?

這是 test.js 文件:

const Browser = require("../Browser")
const MainPage = require("../pageobjects/MainPage")
const AlertPage = require("../pageobjects/AlertPage");
describe("Test 1", function(){
    it("test case",  async function(){
         await Browser.goToUrl("https://demoqa.com/")
         let mainPage = new MainPage();
         let isMainPageDisplayed = await mainPage.isMainPageDisplayed();
         expect(isMainPageDisplayed).to.be.true
         await mainPage.clickAlertFrameWindows()
         let alertPage = new AlertPage()
         let isAlertPageDisplayed = await alertPage.isAlertElDisplayed();
         expect(isAlertPageDisplayed).to.be.true
         await alertPage.clickAlertEl()
         await Browser.closeBrowser()
    })
})

警報頁面.js:

class AlertPage{
    #name = "Alert Page";
    #locator = "//span[text()='Alerts']"
    #alertEl = new BaseElement(this.#locator, "Alert button")

    clickAlertEl(){
 BrowserFactory.getBrowser().wait(until.elementLocated(By.xpath("//span[text()='Alerts']/ancestor::li[contains(@class,'btn')]")))
        this.#alertEl.clickWithExecutor()
 
    }
    isAlertElDisplayed(){
        // BrowserFactory.getBrowser().wait(until.elementLocated(By.xpath("//span[text()='Alerts']/ancestor::li[contains(@class,'btn')]")))
        return this.#alertEl.isElementPresent()
    }
}
module.exports = AlertPage;

HTML的截圖:

在此處輸入圖像描述 `

通常<span>標簽更容易被點擊。 所以在clickAlertEl()中嘗試:

BrowserFactory.getBrowser().wait(until.elementLocated(By.xpath("//span[text()='Alerts']//ancestor::li[1]")))

或者簡單地

BrowserFactory.getBrowser().wait(until.elementLocated(By.xpath("//span[text()='Alerts']")))

暫無
暫無

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

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