Java中通过Selenium WebDriver定位iframe中的元素

时间:2022-05-21 00:00:35

转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/

问题:有一些元素,无论是通过id或是xpath等等,怎么都定位不到。

分析:这很可能是因为你要定位的元素被嵌套在了当前页面的一个iframe元素中,Selenium对iframe中的元素有特殊的定位规则,WebDriver不能够直接进行定位。

解决办法:我们要把这个iframe元素找出来,让WebDriver转移到这个iframe元素上,之后再让WebDriver对iframe中的元素进行定位。

因为最近在用Java来做一些东西,所以就顺便说一下Selenium在Java环境下的使用,总共分三步:

第一步、把Selenium的压缩包从官网上下载下来,解压缩后将所有的jar包——

Java中通过Selenium WebDriver定位iframe中的元素

都复制到java project下:

Java中通过Selenium WebDriver定位iframe中的元素

第二步、右键项目->Build Path->Configue Build Path->Libraries->Add JARs->选择lib文件夹下所有的jar包->OK->OK:

Java中通过Selenium WebDriver定位iframe中的元素

第三步、在项目中import和Selenium相关的类库并使用。

下面举个实际应用中的例子,拿360游戏中心的首页举例,尝试定位页面左侧的账号栏并输入用户名:

Java中通过Selenium WebDriver定位iframe中的元素

通过查看页面元素,你会发现它被嵌套在了一个iframe里,要定位这个input标签,代码如下:

Java中通过Selenium WebDriver定位iframe中的元素

运行结果如下,我们成功定位到了这个iframe中的input元素,并输入了用户名:

Java中通过Selenium WebDriver定位iframe中的元素