Selenium 如何处理“问题”;“等等”;或;为web应用程序加载
我通过为一个web应用程序编写自动化代码来学习selenium。 加载页面时,我调用Thread.sleep()方法,然后设置元素ID 在下面的代码中,首先单击submit按钮,然后等待“Success”div loaderSelenium 如何处理“问题”;“等等”;或;为web应用程序加载,selenium,sleep,Selenium,Sleep,我通过为一个web应用程序编写自动化代码来学习selenium。 加载页面时,我调用Thread.sleep()方法,然后设置元素ID 在下面的代码中,首先单击submit按钮,然后等待“Success”div loader isElementPresent("btn_settingsSubmit_id").click(); Thread.sleep(2000); WebDriverWait waitSet = ne
isElementPresent("btn_settingsSubmit_id").click();
Thread.sleep(2000);
WebDriverWait waitSet = new WebDriverWait(driver,40);
waitSet.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//span[@class='jq-toast-loader jq-toast-loaded']"))));
//*********************************Add Priority***************************************
Thread.sleep(6000);
WebElement PT=isElementPresent("lnk_priorityTab_id");
PT.click();
WebDriverWait wait02 = new WebDriverWait(driver,30);
wait02.until(ExpectedConditions.invisibilityOfElementLocated(By.className("preloader")));
这里的问题是,若互联网速度慢,或者服务器需要时间来发送响应,那个么睡眠并没有什么帮助,并且会出现一个错误,比如找不到元素id
处理此页面/元素加载的方法是什么?对Id使用相同的
ExpectedConditions.visibilityOf()
。ExpectedConditions.visibilityOf()做什么。这将等待元素可见。一旦元素可见,这将移动到下一个语句,不再等待指定的时间。我们可以将其用于所有元素还是仅在某个位置使用?您可以在需要标识元素的任何位置使用。这是避免同步错误的最佳实践。它在哪里失败?关于“预加载程序”的隐形性?30秒不够长吗?或者这是“isElementPresent(“lnk_priorityTab_id”)”上的失败,您尚未添加等待。@DMart我应用了web驱动程序等待“isElementPresent(“lnk_priorityTab_id”)”直到该元素可见。它有时运行良好,有时会出现过时的元素引用异常。代码何时运行、何时中断变得不确定。如何处理?