我注意到在 Selenium Webdriver (http://selenium.googlecode.com/git/docs/api/java/index.html) 中不推荐使用 pause() 方法
暂停确实是一种不好的做法,但是我该如何模拟以下场景呢? :
这里的问题是,如果我执行 moveToElement().clickAndHold().moveToOffset() 得到的实际上是“swype”,那么页面上有这样的功能。我想要的是单击并按住元素,模拟人类行为的一点暂停(100 毫秒绰绰有余)。如果没有 pause(),我看不到另一种方法。有没有?
最佳答案
你还没有说你使用什么语言绑定(bind)来编写你的 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());
}
关于Selenium Webdriver Actions - 我可以用其他方法替换不推荐使用的暂停方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23996518/