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/如果函數失敗,隱式等待將不會立即執行,它只會爲重試設置默認的等待時間。明確的等待是當您需要比默認(隱含)等待時間更長的等待時間時。否則,他們的工作幾乎相同。 –