近朱者赤,近墨者黑。

selenium录制回放找不到元素的问题

上一篇 / 下一篇  2016-03-08 22:15:57 / 个人分类:自动化测试

 
  最近弄懂一点Selenium的使用,但是仅仅是初步的上手。昨天录制了个登陆购物的用例,回放就频频出问题。这边页面上明明有id元素,但是回放时再三报错,“element id=********** not found",我查了不少资料。归纳下页面查找不到元素的可能原因。

 1、要跳转的页面还没有加载完,这样会导致回放时找不到相应id元素。

 2、回放时,元素所在的iframe有变化,而回放脚步没有做改动,导致找不到元素。
    
   
由于需要定位的元素在某一个frame里边,所以有时通过单独的id/name/xpath还是定位不到此元素。
比如以下一段xml源文件
<iframe id="left_frame" scrolling="auto" frameborder="1" src="index.php?m=Index&a=Menu" name="left_frame" noresize="noresize" style="height: 100%;visibility: inherit; width: 100%;z-index: 1">

 3、对于弹出窗口,要让selenium获取当前窗口的句柄,具体可以使用windowHandles实现,让selenium定位到当前窗口,然后才能定位到要操作的元素。

 4、元素不在同一个frame里边,查找需要重新定位
 5、动态id定位不到元素:
 举个例子来说:
  
  WebElement compose_ele=driver.findElement(By.id("_mail_component_82_82"));
  WebElement compose_ele=driver.findElement(By.xpath("//span[contains(.,'写信')]"));

  compose_ele.click();

   这一段代码注释掉的部分为通过id定位element的,但是此id"_mail_component_82_82"后面的数字会随着你每次登陆而变化,此时就无法通过id准确定位到element.

   因此推荐使用xpath这种方法来查找定位元素。

最后一点,Selenium支持的Firefox浏览器安全性强,不允许跨域调用。

 

TAG: 元素

 

评分:0

我来说两句

Open Toolbar