求助 selenium 定位不到,还是页面等待时间不够
本帖最后由 wateryx 于 2016-3-11 11:10 编辑使用firebug 定位到 xpath 值为 :.//*[@id='id_toolbar_send']
使用selemium IDE 定位到的代码为:
driver.findElement(By.id("id_inbox")).click();
driver.findElement(By.id("id_toolbar_send")).click();
在实际中因为页面刷新比较慢,大概30%的概率可以跑成功的代码如下:
driver.manage().timeouts().implicitlyWait(200, TimeUnit.SECONDS);
Thread.sleep(5000);
WebElement myDynamicElement = (new WebDriverWait(driver, 20)).until(ExpectedConditions.presenceOfElementLocated(By.id("id_inbox")));
driver.findElement(By.id("id_inbox")).click();
//driver.findElement(By.id("id_toolbar_send")).click();
//*[@id="id_toolbar_send"]
Thread.sleep(1000);
driver.findElement(By.xpath(".//*[@id='id_toolbar_send'and@class='toolbar_send']")).click();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
请问应该如何写可以每次都跑过?到底是因为页面时间加载时间过长导致无法点击“写件”按钮,还是因为点击“写件”的代码错误?
页面打开时有什么加载框弹出来吗?有的话,先等加载框关闭,再操作。没有的话,只能延长等待了。 可以先检查那个按钮是不是出现,再进行点击的操作,不用硬等待 By.xpath(".//*[@id='id_toolbar_send'and@class='toolbar_send']"))
为什么要以.开始呢? ".//*[@id='id_toolbar_send'and@class='toolbar_send']"
为什么以"."开始呢,去掉它试试
页:
[1]