51Testing软件测试论坛

标题: 求助 selenium 定位不到,还是页面等待时间不够 [打印本页]

作者: wateryx    时间: 2016-3-11 11:09
标题: 求助 selenium 定位不到,还是页面等待时间不够
本帖最后由 wateryx 于 2016-3-11 11:10 编辑

[attach]100363[/attach]使用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
页面打开时有什么加载框弹出来吗?有的话,先等加载框关闭,再操作。没有的话,只能延长等待了。
作者: 安裴轩    时间: 2016-3-15 15:48
可以先检查那个按钮是不是出现,再进行点击的操作,不用硬等待
作者: niky313    时间: 2016-3-17 16:58
By.xpath(".//*[@id='id_toolbar_send'and@class='toolbar_send']"))
为什么要以.开始呢?
作者: niky313    时间: 2016-3-17 17:01
".//*[@id='id_toolbar_send'and@class='toolbar_send']"

为什么以"."开始呢,去掉它试试




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2