![](/img/trans.png)
[英]Selenium Web Driver - How to check whether all the products in a page loads
[英]Page loading and Selenium - Driver not doing anything after it loads
我正在尝试自动化(Java + Selenium)网站测试,但是我在等待过程中遇到很多问题,无法按照自己的意愿进行操作。
一旦我准备好几个单元测试,我的问题就是:
*如果我不进行任何等待,仅执行代码启动firefox启动,则页面加载不会执行任何其他操作。 我的印象是页面将在返回控件之前加载,但这似乎没有发生。 如果我没有运行它,而是放置了一个断点,请对其进行调试并逐步运行,那么一切都将正常运行,这使我相信这是一个定时问题。
如果我写这个,那么它也很好用:
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
但是,如果我希望它等待某个元素可见(例如用户名或密码字段)或一个按钮可单击(例如登录按钮),则光标停留在URL栏中,并且除了加载页面外,它什么也没做。
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//*[@id='isc_E']"))));
(是的,我知道我可以使用ID而不是xpath,这是我多次尝试中的一次尝试)。
在那段代码之后,它应该在两个文本字段上执行几个sendKeys(),然后在登录按钮上单击click()并停止。 我是否需要添加其他任何内容以实际执行wait命令还是应该足够?
我知道我可能会以一种相当愚蠢的方式将其弄乱,但我一生都无法自行找到或解决。
谢谢。
我不确定您如何单击提交按钮。 但它应该走下面的路
// WebDriver instance for explicit wait by default on until condition
WebDriverWait wait = new WebDriverWait(driver, 5000);
// waits until elements gets ready
WebElement we = wait
.until(ExpectedConditions.elementToBeClickable(By
.xpath("//*[@id=\"searchSubmit\"]")));
// once elements is ready it will clicked
driver.findElement((By) we).click();
driver.findElement(By.xpath("//*[@id=\"searchSubmit\"]")).click();
我希望这可以帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.