Selenium Webdriver操作 - 我可以用其他东西替换已弃用的暂停方法吗?

vic*_*ass 5 selenium ui-automation selenium-webdriver

我注意到在Selenium Webdriver中不推荐使用pause()方法(http://selenium.googlecode.com/git/docs/api/java/index.html)

暂停确实是某种不好的做法,但那我怎么能模拟下面的场景呢?:

  • 转到网页
  • 选择呈现为图像的文本(DRM原因,在其上有一个额外的逻辑层)
  • 做一点事...

这里的问题是,如果我执行moveToElement().clickAndHold().moveToOffset()我得到的实际上是"swype",页面上有这样的功能.我想要的是点击并按住元素,稍微停顿一下模拟人类行为(100毫秒就足够了).没有暂停(),我没有看到另一种方法.有没有?

Cyn*_*ker 0

您还没有说明使用什么语言绑定来编写 WebDriver 测试,但在 C# 或 Java 中您可以只使用 Thread.Sleep(100)。我确信所有其他语言中都有等效的内容。或者我认为 WebDriverWait laterBy(longurationInMillis) 会执行与 Thread.Sleep 相同的操作。

我个人更喜欢尽快执行测试,因此我有一个自定义等待方法,该方法等待元素出现并可见,然后再允许下一步。

在下面的示例中,thread.sleep 插入到 sendKeys 和 assertEquals 步骤之间。

      @Before
  public void setUp() throws Exception {
    driver = new FirefoxDriver();
    baseUrl = "https://www.google.co.uk/";
  }

  @Test
  public void test1() throws Exception {
    driver.get(baseUrl + "/");
    driver.findElement(By.id("gbqfq")).sendKeys("selenium");
    thread.sleep(100);
    assertEquals("selenium", driver.findElement(By.cssSelector("cite._Pd > b")).getText());
  }
Run Code Online (Sandbox Code Playgroud)