Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 量角器在其显示在页面上之前单击元素_Javascript_Typescript_Protractor_E2e Testing_Gulp Protractor - Fatal编程技术网

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的许多问题。