0
我正在使用硒脚本,我正在使用显式等待。我有一个脚本,我有三种方法来调用IE,FireFox和Chrome浏览器。如何在TestNG框架中为多个浏览器编写脚本时声明显式等待?
我将一次为一个浏览器执行脚本。现在的问题是我应该如何声明等待(明确)。我可以看到以下两个选项。 1.在全局范围内创建WebDriverWait类的一个对象---在这种情况下,Web驱动程序抛出异常,因为没有为浏览器类创建对象(在本例中为FireFoxDriver())。 2.在任何方法中本地创建WebDriverWait类的对象 - 在这种情况下,等待可以很好地工作,但如果我不得不再次使用等待任何其他元素。它会要求你在本地再次创建WebDriverWait类的对象(这是我想避免的)。
总之。我只想在代码中创建WebDriverWait类的onle对象。我怎么能为下面提到的代码呢?
以下是代码..
公共类对{ 的webdriver驱动器;
@BeforeClass
void InvokeFF() {
System.setProperty("webdriver.gecko.driver",
"C:/Users/Vinay/workspace_n/EGuru/drivers/geckodriver.exe");
driver = new FirefoxDriver();
// driver.get("http://seleniumpractise.blogspot.in/2016/08/bootstrap-dropdown-example-for-selenium.html");
System.out.println("Firefox invoked");
System.out.println("Firefox thread:" + Thread.currentThread().getId());
}
@BeforeClass(enabled = false)
void InvokeIE() {
System.setProperty("webdriver.ie.driver",
"C:/Users/Vinay/workspace_n/EGuru/drivers/IEDriverServer.exe");
driver = new InternetExplorerDriver();
System.out.println("Internet Explorer invoked");
System.out.println("IE thread:" + Thread.currentThread().getId());
}
@BeforeClass(enabled = false)
void InvokeGC() {
System.setProperty("webdriver.chrome.driver",
"C:/Users/Vinay/workspace_n/EGuru/drivers/chromedriver.exe");
driver = new ChromeDriver();
// driver.get("http://www.seleniumeasy.com");
System.out.println("Chrome invoked");
System.out.println("Chrome thread:" + Thread.currentThread().getId());
}
@Test
void Auto() throws Exception {
WebDriverWait wait = new WebDriverWait(driver, 20);
driver.get("file:///C:/Users/Vinay/Desktop/Upload1.html");
wait.until(ExpectedConditions.visibilityOfElementLocated(By
.xpath(".//*[@id='1']")));
driver.findElement(By.xpath(".//*[@id='1']")).click();
Runtime.getRuntime().exec("C:\\Users\\Vinay\\Desktop\\AutoUpload.exe");
}
}
隐式等待将使脚本在执行完每条指令/语句后等待10秒钟,并且它只能在脚本中声明一次。这会让我的脚本变慢。我希望明确地等待,只要我需要,就等待。 – iAutomate
请参阅http://toolsqa.com/selenium-webdriver/implicit-explicit-n-fluent-wait/如果函数失败,隐式等待将不会立即执行,它只会为重试设置默认的等待时间。明确的等待是当您需要比默认(隐含)等待时间更长的等待时间时。否则,他们的工作几乎相同。 –