selenium webdriver定位不到元素的五种原因及解决办法

1.动态id定位不到元素
for example:
        //WebElement xiexin_element = driver.findElement(By.id("_mail_component_82_82"));
        WebElement xiexin_element = driver.findElement(By.xpath("//span[contains(.,'写 信')]"));
        xiexin_element.click();

   上面一段代码注释掉的部分为通过id定位element的,但是此id“_mail_component_82_82”后面的数字会随着你每次登陆而变化,此时就无法通过id准确定位到element。
   所以推荐使用xpath的相对路径方法查找到该元素。

2.iframe原因定位不到元素

    由于需要定位的元素在某一个frame里边,所以有时通过单独的id/name/xpath还是定位不到此元素
比如以下一段xml源文件: