gpt4 book ai didi

javascript - Selenium 在 Try block 中崩溃

转载 作者:行者123 更新时间:2023-11-29 23:56:20 26 4
gpt4 key购买 nike

所以我正在使用 Selenium 的 JavaScript 实现,即 WebDriverJS。我是 WebDriverJS 的新手,我想知道为什么代码会在 Try block 中崩溃?它甚至从未到达 Catch block 。这是我的代码:

    try
{
driver.findElement(this.By.xpath("html/body/form/div[4]/div[1]/center[1]/div[15]/div[1]/a[1]/img[1]")).click();
catch (err)
{
driver.findElement(this.By.xpath("html/body/form/div[3]/div[1]/center[1]/div[15]/div[1]/a[1]/img[1]")).click();
}

然后我在控制台中收到此错误消息:

NoSuchElementError: 没有这样的元素: 无法定位元素: {"method":"xpath","selector":"html/body/form/div[4]/div[1]/center[1]/div [15]/div[1]/a[1]/img[1]"

如您所见,此错误来自 Try block 中的代码。

有什么方法可以让代码在出现错误的情况下继续执行?

最佳答案

WebdriverJS 异步触发“findElements”(docs here),这意味着您的语句将清除 try catch,然后回调抛出错误。要正确捕获错误,请使用 promise pattern :

// Original implementation    
driver.findElement({id: 'my-button'}).click();

// Promise usage, my preference
driver.findElement({id: 'my-button'}).then(function(el) {
return el.click();
}).catch(function(err){
//handle error here
})

// Another way to resolve the error
driver.findElement({id: 'my-button'}).then(el, function (err) {
if (err && err.name === "NoSuchElementError"){
return console.log("Element was missing!");
}

return el.click();
});

关于javascript - Selenium 在 Try block 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41556657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com