【问题标题】:Selenium testing two pages at the same timeSelenium 同时测试两个页面
【发布时间】:2021-02-18 18:55:30
【问题描述】:

所以我有两个网页 A 和 B。 我想验证当 A 发生更改时,该更改正确显示在 B 上。 所以我想做的是同时启动两个 Selenium 测试,然后测试 B 进入需要等待更改发生的阶段。因此,当 A 的测试正在执行其工作时,B 会等待,一旦 A 完成,它会通知在网页 B 上运行的测试以检查是否发生了更改。

Selenium 可以做到这一点吗?还是我需要先测试网页A,然后打开B并检查更改是否通过?

【问题讨论】:

  • dependsonmethods 如果您需要测试才能通过另一种方法。我会使用测试网页 A 并使 B 依赖于该方法。
  • 您可以通过打开一个新选项卡,将驱动程序切换到该选项卡,然后打开页面 B 来执行此操作。(相同的测试)
  • 这可以通过两种方式完成。 (1) 如果您的项目使用 TestNG,则使用 (dependson) 属性。并配置 XML 执行测试。 (2) 在一个选项卡中进行更改,然后切换到另一个窗口并验证更改。
  • @pcalkins 是否可以以这种方式并行运行它们?我的意思是,两个页面都打开并在那里做事。然后让 B 等待 A 完成?
  • 是的。每个驱动程序/浏览器一个线程。然后通知和所有这一切......看起来会有点复杂......维护哪些部分是并行的,哪些是顺序的......所以A会等到B通知并等到A通知回来......等等...

标签: java selenium automated-tests


【解决方案1】:

您可以使用两个WebDriver 实例。第一个将作用于一个页面,而第二个将监视第二个页面。下面是一个简单的例子:

driver1.get("http://your.domain.test/page1");
driver2.get("http://your.domain.test/page2");
driver1.findElement(By.xpath("//some/xpath")).click();
new FluentWait<>(driver2).until(
        ExpectedConditions
                .visibilityOfElementLocated(
                        By.xpath("//what/you/expect")
                )
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多