右侧
国内最专业的黑客技术博客
当前位置:网站首页 > 网络黑客 > 正文

selenium常用的元素定位方法_selenium详细定位方法

作者:hacker发布时间:2022-09-22分类:网络黑客浏览:136评论:5


导读:目录:1、selenium脚本中怎么定位2、selenium如何定位没有id的frame3、selenium新手求助,关于一个元素的定位4、selenium...

目录:

selenium脚本中怎么定位

该selenium的学习我是根据java语言来进行的,所以很多语法都是根据java而来的。

很多时候我们都在与页面打交道,这样或多或少的应该对html代码有一点了解。html 也就是所说的超文本标记语言,利用一些标签的集合来搭建整个页面。

每一个标签都会有自己的属性,现在的对象定位也就是根据其中的属性进行获取的。

div id="header"

h1Main Title of Web Page/h1

/div

在很多页面中都包含id属性,如何获取由id定义的内容呢?

WebDriver dr=new FirefoxDriver();//这里使用的是火狐浏览器

dr.findElement(By.id("header"));这样就可以获取上面的div盒子了

以百度经验首页html代码为例:

a target="_blank" href=""手机/a

此代码显示的为一个链接,那么怎么获取该链接呢?

WebElement link=dr.findElement(By.linkText(“手机”));这里根据link标签名获取内容,并且返回的是一个类型为WebElement的元素

WebElement paLink=dr.findElement(By.partialLinkText(“link前几个字母”));此命令是根据标签的前几个字实现的匹配

很多页面都会使用css进行页面的控制,那么怎么使用css进行获取页面内容呢?

WebElement d=dr.findElement(By.cssSelector(“css名称”))

有的页面中获取不了以上的特殊信息的时候,可以根据xpath获取唯一的控件标识

dr.findElement(By.xpath(“xpath”)).click();//click事件的使用时因为该xpath所标志的为按钮事件

还有一些是根据标签名进行获取的

String s=dr.findElement(By.tagName(“tagName”)).getAttribute(“class”)

tagName也就是控件名称,比如input

大体上以上获取的方法基本包括了页面上所有能够获取到的信息,不管一个html页面中有多少种控件组合而成,其属性基本都是以上几种,只要结合使用以上信息,就能够完成整个页面的信息获取。

selenium 如何定位没有id的frame

selenium 可以用xpath或者css来定位目标.

对于frame, 如果没有id, 可以用name或者其他属性来定位. 例如: //frame[@name='xxx']

如果所有属性都没有, 那就通过先定位该frame的祖辈级元素来缩减范围, 并逐步缩减到目标唯一.例如: //div[@id='aaa']//frame

selenium新手求助,关于一个元素的定位

xpath定位,你用chrome浏览器,在页面上右键-》审查元素,然后会弹出开发者工具,里面会显示你选中部分的页面源码并高亮你选择的地方,在源码里右键,选择copy xpath 用这个定位。

首先,selenium webdriver识别元素是个大难题,甚至有时候为了元素能够正确识别,甚至会延长等待时间,脚本执行的正确性比速度重要些。

然后再说IE Driver,如果用IE执行测试,不建议用xpath selecter定位,因为IE对xpath的支持不是很好,建议尽可能用id、name等定位方法,或者使用Css selecter。

当然,如果脚本很简单,纯追求速度的话,可以使用HtmlUnitDriver,不用打开浏览器运行测试,速度很快,但是限制也比较多,还要你自己实践研究了。

selenium IDE 如何定位页面变动元素

定位页面元素主要有以下几种方法

//通过Id定位元素

WebElement element = driver.findElement(By.id(“id名"));

//通过name定位元素

WebElement element = driver.findElement(By.name(“name名"));

//通过xpath定位元素

WebElement element = driver.findElement(By.xpath(“xpath路径"));

//通过标签的值定位元素

WebElement cheese = driver.findElement(By.linkText(“标签的值"));

//通过class的值定位元素

List list=driver.findElements(By.className(“class值"));

//通过标签名定位元素

List list = driver.findElements(By.tagName(“标签名"));

selenium有几种定位方式

几种方式定位到此页面的"搜索答案"按钮

id:driver.findElement(By.id("search-btn"));

class:driver.findElement(By.className("btn-global"));

xpath:driver.findElement(By.xpath("//button[@class='39b7-4f0a-8cf3-914d btn-global']"));

linkText:driver.findElement(By.linkText("搜索答案"));

还有tagName就是通过name元素进行定位

常用的就是这些了

标签:selenium详细定位方法


已有5位网友发表了看法:

  • 访客

    访客  评论于 2022-09-22 08:59:09  回复

    m的学习我是根据java语言来进行的,所以很多语法都是根据java而来的。 很多时候我们都在与页面打交道,这样或多或少的应该对html代码有一点了解。html 也就是所说的超文本标记语言,利用一些标签的集合来搭建整个页面。 每一个标签都会有自己的属性,现

  • 访客

    访客  评论于 2022-09-22 05:15:39  回复

    id(“id名"));//通过name定位元素WebElement element = driver.findElement(By.name(“name名"));//通过xpath定位元素WebEleme

  • 访客

    访客  评论于 2022-09-22 13:13:19  回复

    者工具,里面会显示你选中部分的页面源码并高亮你选择的地方,在源码里右键,选择copy xpath 用这个定位。首先,selenium webdriver识别元素是个大难题,甚至有时候为了元素能够正确识别,甚至会延长等待时间,脚本执行的正确性比速

  • 访客

    访客  评论于 2022-09-22 13:21:06  回复

    /frameselenium新手求助,关于一个元素的定位xpath定位,你用chrome浏览器,在页面上右键-》审查元素,然后会弹出开发者工具,里面会显示你选中部分的页面源码并高亮你选择的地方,在

  • 访客

    访客  评论于 2022-09-22 04:26:32  回复

    可以获取上面的div盒子了以百度经验首页html代码为例:a target="_blank" href=""手机/a此代码显示的为一个链接,那么怎么获取该链接呢?WebEleme

欢迎 发表评论:

网络黑客排行
最近发表
标签列表