我注意到在Selenium Webdriver(http://selenium.googlecode.com/git/docs/api/java/index.html)中不推荐使用pause()方法
暂停确实是某种不好的做法,但那我该如何模拟以下场景呢? :
这里的问题是,如果我执行moveToElement()。clickAndHold()。moveToOffset()我得到的实际上是“swype”,页面上有这样的功能。我想要的是点击并按住元素,有点暂停模拟人类行为(100毫秒绰绰有余)。没有暂停(),我没有看到另一种方法。有没有?
答案 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());
}