selenium2: Click radio button 不生效的解决方法

 

问题: 我们测试站点上的某一个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);
          }

你可能感兴趣的:(selenium,自动化测试,webdriver)