问题: 我们测试站点上的某一个radio button老是点不到
测试代码:
WebElement radio = driver.finElement(By.id("id"));
if(!radio.isSelect())
{
radio.click();
}
Debug的时候,能走到第四行,radio.click(); 但是实际运行的时候,老是点不上。刚开始怀疑是等待时间不够长,在findElement之后加了等待时间,在click之后也加了等待时间,都不行。
最后选择多次点击这个radio。只要判断没有点击成功,就接着点。
修改代码为:
WebElement radio = driver.finElement(By.id("id"));
while(!radio.isSelect()) {
radio.click();
thread.sleep(1000);
}
这样做页面不停的闪烁,就是点击不到radio button。最后不小心碰了一下鼠标,鼠标跳到webdriver启动的页面。元素就被点到了。
问题的原因: 试了好多次,终于发现原来是因为radio button在页面的底端,测试页面非常长。改成下面的就可以了。
WebElement radio = driver.finElement(By.id("id"));
cradio.sendKeys(Keys.ARROW_DOWN);
if(!radio.isSelected()) {
radio.click();
Thread.sleep(1000);
}
if(!radio.isSelected()) {
radio.click();
Thread.sleep(1000);
}