Javascript 量角器在其显示在页面上之前单击元素
我在量角器中的等待遇到了一些问题。例如,我正在加载的页面之间导航,然后我需要单击一个按钮。但是,有时,按钮会在加载消失之前出现。所以量角器点击加载后面的这个按钮,按钮没有动作,因为加载在屏幕上。 那么,我如何使用等待来应对这种情况呢 我一直在努力:Javascript 量角器在其显示在页面上之前单击元素,javascript,typescript,protractor,e2e-testing,gulp-protractor,Javascript,Typescript,Protractor,E2e Testing,Gulp Protractor,我在量角器中的等待遇到了一些问题。例如,我正在加载的页面之间导航,然后我需要单击一个按钮。但是,有时,按钮会在加载消失之前出现。所以量角器点击加载后面的这个按钮,按钮没有动作,因为加载在屏幕上。 那么,我如何使用等待来应对这种情况呢 我一直在努力: EC.invisibilityOf(loading) .then(() => { EC.elementToBeClickable(button) .then(() => {
EC.invisibilityOf(loading)
.then(() => {
EC.elementToBeClickable(button)
.then(() => {
browser.actions().mouseMove(button).click().perform();
});
});
});
您是否尝试在单击之前让浏览器休眠一点
browser.sleep(2000)代码>在单击之前,您是否尝试让浏览器休眠一点
browser.sleep(2000)代码>您应该为常规等待创建一些帮助器方法。
假设您具有以下等待功能:
async waitForDisplayed(element: ElementFinder, timeout = 20000): Promise<boolean> {
try {
return await browser.wait(element.isDisplayed());
} catch (error) {
return false;
}
}
干杯 您应该为常规等待创建一些帮助器方法。
假设您具有以下等待功能:
async waitForDisplayed(element: ElementFinder, timeout = 20000): Promise<boolean> {
try {
return await browser.wait(element.isDisplayed());
} catch (error) {
return false;
}
}
干杯 尝试使用以下命令等待元素:
static forElementVisible(element) {
return new Promise<any>(async (resolve) => {
await browser.driver.wait(ExpectedConditions.visibilityOf(element), 10000,
`Timed out waiting for element to become visible`).then(() => {
resolve();
});
});
}
静态forElementVisible(元素){
返回新承诺(异步(解析)=>{
wait browser.driver.wait(ExpectedConditions.visibilityOf(element),10000,
`等待元素变为可见“”时超时。然后(()=>{
解决();
});
});
}
尝试使用以下命令等待元素:
static forElementVisible(element) {
return new Promise<any>(async (resolve) => {
await browser.driver.wait(ExpectedConditions.visibilityOf(element), 10000,
`Timed out waiting for element to become visible`).then(() => {
resolve();
});
});
}
静态forElementVisible(元素){
返回新承诺(异步(解析)=>{
wait browser.driver.wait(ExpectedConditions.visibilityOf(element),10000,
`等待元素变为可见“”时超时。然后(()=>{
解决();
});
});
}
我尝试过,但我不认为这是解决问题的最佳方法。Idk,我使用quiet-frequest浏览器。在我的应用程序中使用sleep,它可以通过web浏览器解决synchro的许多问题。我尝试过,但我认为这不是解决问题的最佳方法。Idk,我使用quiet-frequest浏览器。在我的应用程序中使用sleep,它可以通过web浏览器解决synchro的许多问题。