[英]NoSuchElementError: no such element: Unable to locate element using Selenium Javascript
I am using selenium with Javascript. When I want to click on an element, I am getting this error.我正在使用 selenium 和 Javascript。当我想点击一个元素时,我收到了这个错误。 I used explicit wait but it did not help.
我使用了显式等待,但没有帮助。 Can anyone help me?
谁能帮我?
This is test.js file:这是 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()
})
})
AlertPage.js:警报页面.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;
Snapshot of HTML: HTML的截图:
`
`
Generally <span>
tags are easier to click.通常
<span>
标签更容易被点击。 So within clickAlertEl()
try:所以在
clickAlertEl()
中尝试:
BrowserFactory.getBrowser().wait(until.elementLocated(By.xpath("//span[text()='Alerts']//ancestor::li[1]")))
or simply或者简单地
BrowserFactory.getBrowser().wait(until.elementLocated(By.xpath("//span[text()='Alerts']")))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.