【问题标题】:Safari driver hangs while running automation testSafari 驱动程序在运行自动化测试时挂起
【发布时间】:2017-12-21 00:28:24
【问题描述】:

Safari 版本:11.0.2 MAC 版本:10.12.6 Mac OS Sierra selenium-java 版本:3.5.3 语言:JAVA

每当我在 Safari 驱动程序上运行硒测试时,它会在运行几个步骤后挂起(找不到特定模式)。在 IOS/Safari、Android/Chrome、MAC/Chrome 上运行相同的测试文件。

在调试/逐步运行测试时效果很好。 Safari 没有响应的原因可能是什么?

【问题讨论】:

  • 请您的代码试用和相关HTML
  • 我会复活这个老话题 - 这里有同样的问题,当您在远程机器中打开 VNC 会话或连接屏幕时,长时间的 Safari 测试正在通过,否则只需挂起直到您打开远程VNC 屏幕。只有在你打开屏幕很长时间后才会发生这种情况(在我的情况下是夜间测试),所以看起来像是某种资源节省模式,甚至省电模式也关闭了。

标签: selenium-webdriver safaridriver


【解决方案1】:

这是模拟问题的代码。 Safari 挂起,无法点击“继续购物”

public static void main(String[] args) {
    SafariOptions safariOptions = new SafariOptions();
    safariOptions.setUseCleanSession(true);
    // safariOptions.setUseTechnologyPreview(true);
    DesiredCapabilities safariCapabilities = DesiredCapabilities.safari();
    safariCapabilities.setJavascriptEnabled(true);
    safariCapabilities.setAcceptInsecureCerts(true);
    safariCapabilities.setPlatform(Platform.MAC);
    safariCapabilities.setCapability("platformName", Platform.MAC);
    safariCapabilities.setVersion("11.2");
    safariCapabilities.setBrowserName("safari");
    safariCapabilities.setCapability(SafariOptions.CAPABILITY, safariOptions);
    WebDriver safariDriver = new SafariDriver(safariCapabilities);
    safariDriver.manage().window().maximize();
    safariDriver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

    safariDriver.get("https://www.shoppersstop.com/");
    waitFor(safariDriver, ExpectedConditions.elementToBeClickable(By.xpath("//a[@href='cart']")));
    safariDriver.findElement(By.xpath("//a[@href='cart']")).click();
    waitFor(safariDriver, ExpectedConditions.elementToBeClickable(By.xpath("//a[text()='Continue Shopping']")));
    safariDriver.findElement(By.xpath("//a[text()='Continue Shopping']")).click();
}

public static <T> T waitFor(WebDriver safariDriver, ExpectedCondition<T> condition) {
    return new FluentWait<WebDriver>(safariDriver).withTimeout(30, TimeUnit.SECONDS)
            .pollingEvery(500, TimeUnit.MILLISECONDS).until(condition);
}

【讨论】:

    【解决方案2】:

    即使主题已经死了,我也遇到了类似的问题,解决方案是设置

    之后关闭显示”设置为“从不

    在 “苹果”>“偏好”>“节能”

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 2021-01-25
      • 2017-09-21
      • 2014-04-04
      • 1970-01-01
      • 2016-10-22
      • 2015-04-18
      • 2020-07-18
      • 2021-11-10
      相关资源
      最近更新 更多