使用Neustar WPM等待元素可见性而不是页面加载

时间:2017-08-23 10:05:14

标签: javascript selenium

我正在尝试编写一个Neustar WPM脚本来测量从单击按钮到打开的叠加层中按钮外观所需的时间。该脚本如下所示。

var webDriver = test.openBrowser();
var selenium = webDriver.getSelenium();

webDriver.get('https://www.mywebsite.com');
selenium.waitForPageToLoad(30000);

// Start logging HTTP traffic and timings
test.beginTransaction();    

test.beginStep("Open SignUp");
selenium.click("link=Sign Up");
selenium.waitForElementPresent("name=nextStep");
test.endStep();

test.endTransaction(); 

我面临的问题是点击不会立即返回并等待叠加层完全加载。但是,一旦所需元素可见,我想立即停止。如何确保selenium.click立即返回,而不是等到整个页面加载完毕。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此Java方法

public WebElement waitForVisibilityOfElementLocatedBy(final By locator) { return waitFor(visibilityOfElementLocated(locator)); }

public static ExpectedCondition<WebElement> visibilityOfElementLocated(final By locator) {
    return new ExpectedCondition<WebElement>() {
        public WebElement apply(WebDriver driver) {
            try {
                return ExpectedConditions.elementIfVisible(ExpectedConditions.findElement(locator, driver));
            } catch (StaleElementReferenceException var2) {
                return null;
            }
        }

        public String toString() {
            return "visibility of element located by " + locator;
        }
    };
}`