【发布时间】:2016-06-21 08:37:33
【问题描述】:
我正在用 java 编写我的第一个 webdriver 脚本,该脚本运行良好,但速度非常快。
例如:- 我的 hmtl 页面中有文本框和下拉元素,我编写了用于发送键和从元素中选择值的脚本,但是当我执行脚本时,它非常快,是否需要在每次执行后进行隐式等待步 ?这值得吗 ?或者还有什么解决方案可以让脚本以流畅的方式运行,每一步都正确可见。
下面是我的代码:-
public static void main(String[] args) {
WebDriver wb = new FirefoxDriver();
wb.manage().window().maximize();
wb.navigate().to("http://newtours.demoaut.com/");
/*WebDriverWait wait1 = new WebDriverWait(wb, 50);
WebElement element1 = wait1.until(ExpectedConditions.
elementToBeClickable(By.xpath("//img[@alt='Mercury Tours']")));*/
wb.findElement(By.xpath("//a[text()='REGISTER']")).click();
wb.findElement(By.xpath("//input[@name='firstName']")).sendKeys("Rameshwari");
wb.findElement(By.xpath("//input[@name='lastName']")).sendKeys("Nayak");
wb.findElement(By.xpath("//input[@name='phone']")).sendKeys("7208471118");
wb.findElement(By.xpath("//input[@id='userName']")).sendKeys("Rama");
wb.findElement(By.xpath("//input[@name='address1']")).sendKeys("Nithyanand Chawl");
wb.findElement(By.xpath("//input[@name='city']")).sendKeys("Mumbai");
wb.findElement(By.xpath("//input[@name='state']")).sendKeys("Maharashtra");
wb.findElement(By.xpath("//input[@name='postalCode']")).sendKeys("4000017");
Select dd = new Select(wb.findElement(By.xpath("//select[@name = 'country']")));
dd.selectByVisibleText("INDIA");
}
【问题讨论】:
-
您希望脚本尽可能快地运行。我会从不等待开始,看看它是如何工作的。您可能需要运行它 50 次或其他什么来查看是否有问题。仅在需要时且仅在需要时添加等待。对于您上面的代码,我猜您根本不需要任何等待。您可能需要等待的时间是您在页面上执行某些更改页面内容的操作。如果您尝试与更改的内容进行交互,您可能需要等待内容更改后才能与它进行交互。
-
如果您想查看要调试的每个步骤,请放置断点并单步执行代码。您不应该希望脚本变慢,这样您就可以观察执行情况并了解发生了什么。
-
@JeffC 哦,谢谢
标签: selenium selenium-webdriver wait