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

时间:2014-06-02 14:06:57

标签: selenium selenium-webdriver ui-automation

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

暂停确实是某种不好的做法,但那我该如何模拟以下场景呢? :

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

这里的问题是,如果我执行moveToElement()。clickAndHold()。moveToOffset()我得到的实际上是“swype”,页面上有这样的功能。我想要的是点击并按住元素,有点暂停模拟人类行为(100毫秒绰绰有余)。没有暂停(),我没有看到另一种方法。有没有?

1 个答案:

答案 0 :(得分:0)

您还没有说过用于编写WebDriver测试的语言绑定,但在C#或Java中,您可以使用Thread.Sleep(100)。我确信所有其他语言都有同等效力。或者我认为WebDriverWait laterBy(long durationInMillis)会和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());
  }