wateryx 发表于 2016-3-11 11:09:40

求助 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);


请问应该如何写可以每次都跑过?到底是因为页面时间加载时间过长导致无法点击“写件”按钮,还是因为点击“写件”的代码错误?



蘑菇乱了 发表于 2016-3-13 15:53:09

页面打开时有什么加载框弹出来吗?有的话,先等加载框关闭,再操作。没有的话,只能延长等待了。

安裴轩 发表于 2016-3-15 15:48:16

可以先检查那个按钮是不是出现,再进行点击的操作,不用硬等待

niky313 发表于 2016-3-17 16:58:04

By.xpath(".//*[@id='id_toolbar_send'and@class='toolbar_send']"))
为什么要以.开始呢?

niky313 发表于 2016-3-17 17:01:04

".//*[@id='id_toolbar_send'and@class='toolbar_send']"

为什么以"."开始呢,去掉它试试
页: [1]
查看完整版本: 求助 selenium 定位不到,还是页面等待时间不够