小编Sai*_*fur的帖子

Selenium 在读取 DOM 时非常慢

Selenium 与 DOM 的交互似乎非常慢,同时在每个页面实例化中做几件事。在整个站点中,我们都有可见的微调器,指示是否已解决任何未解决的 API 调用。总之,我有三种方法可以在执行任何操作之前确保页面的稳定性。

  1. 检查 DOM 就绪状态
  2. 检查任何未完成的 JQuery 调用
  3. 检查加载微调器

所有这三个都是通过以下方法作为页面对象实例化的一部分完成的。

    public static void waitForLoadingAllSpinnersAnywhere(final WebDriver driver){
    final WebDriverWait wait = new WebDriverWait(driver, timeout);
    
    wait.until(waitForDomReadyState());
    wait.until(waitForjQueryToBeInactive());
    List<WebElement> elements = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(spinnersLoacator));
    
    for(WebElement element: elements){
        wait.until(invisibilityOfElementLocated(element));  
     }
    }

    private static ExpectedCondition<Boolean> waitForDomReadyState(){

        return new ExpectedCondition<Boolean>() {

            @Override
            public Boolean apply(WebDriver d){

                return ( ((JavascriptExecutor) d).executeScript("return document.readyState;").equals("complete"));
            }
        };
    }


    private static ExpectedCondition<Boolean> waitForjQueryToBeInactive(){

        return new ExpectedCondition<Boolean>() {

            @Override
            public Boolean apply(WebDriver d){

                return (Boolean) ( ((JavascriptExecutor) d).executeScript("return jQuery.active == …
Run Code Online (Sandbox Code Playgroud)

selenium webdriver selenium-firefoxdriver selenium-webdriver firefox-driver

4
推荐指数
2
解决办法
1483
查看次数

Selenium 如何制作点击并按住按钮

在网页中,我测试的是一个模态,它在按下按钮约 5 秒后出现。

现在我试图在selenium. 我有这样的方法:

public static void ClickHold(IWebElement by)
{
    SpecialInteractions.ClickAndHold(by);
}
Run Code Online (Sandbox Code Playgroud)

在哪里

public static Actions SpecialInteractions { get; set; }
Run Code Online (Sandbox Code Playgroud)

并且没有要设置的保持时间。

看起来就像只是点击和释放。有没有办法等待特定的时间然后释放?

selenium automated-tests

3
推荐指数
1
解决办法
3万
查看次数

如何处理量角器中的模态对话框?

我试图sendKeys()网站的模态对话框上使用。单击“ 登录”按钮后,将出现此对话框。我似乎找不到任何将焦点转移到盒子上的方法。见要点

我尝试browser.driver.switchTo().activeElement();

InvalidLogInUnSuccess: {
        get: function () {
            this.loginButton.click();
            browser.driver.switchTo().activeElement();
            this.email.sendKeys("Test");
        }
    }
Run Code Online (Sandbox Code Playgroud)

运气不好并抛出ElementNotVisibleError

消息:ElementNotVisibleError:元素不可见(会话信息:chrome = 41.0.2272.101)(驱动程序信息:chromedriver = 2.14.313457(3d645c400edf2e2c500566c9aa096063e707c9cf),platform = Windows NT 6.3 x86_64)Stacktrace:ElementNotVisibleError:元素不可见

selenium modal-dialog angularjs protractor

2
推荐指数
1
解决办法
1万
查看次数

WebDriver - 如何让webdriver等到文本显示(不使用定位器)

我已经执行了一个动作WebDriver(比如说,我点击了一个按钮),结果是一个文本将显示在页面上.

我们不知道文本的定位元素,但我们知道会显示什么文本.

请建议一种等待文本显示的方法.

我遇到过WebDriverWait,但需要WebElement等待文字.

java selenium webdriver

2
推荐指数
1
解决办法
6505
查看次数

Selenium webdriver ruby​​ 版本如何断言 webelement 不存在?

无论如何,我可以使用ruby 中的selenium webdriver验证元素是否不存在?

如果我做

webdriver.find_element(:xpath, element)
Run Code Online (Sandbox Code Playgroud)

但是如果元素不存在,它会抛出一个错误。我需要确保元素不存在而不抛出错误。

我的意思是,有没有像assert_not或的方法assert_element_not_present

ruby selenium ruby-on-rails webdriver selenium-webdriver

0
推荐指数
1
解决办法
1785
查看次数