分享

Selenide(Selenium)自动化测试(三)

 winglei 2022-10-07 发布于广东

Selenide(Selenium)自动化测试(三)

原创2022-09-22 04:15·三只眼的蜗牛

接着上章继续

一.元素定位

元素定位是最重要环节,元素的定位必须是唯一的,话不多说,来看看元素定位的方法

1.id,name,class定位

id定位就是通过元素的id属性来定位元素ID

根据以上网页的显示的id,selenium的写法

driver.findElement(By.id("kw")).click

selenide的写法

$(By.id("kw")).click();

用以上网页的显示还可以使用name定位

selenium的写法

driver.findElement(By.name("wd")).click

selenide的写法

$(By.name("wd")).click();

用以上网页的显示还可以使用class定位

selenium的写法

driver.findElement(By.className("s_ipt")).click

selenide的写法

$(By.className("s_ipt")).click();

2.tag定位

我几乎没有用过tag来定位,因为tag定位重复率太高,所以能识别元素的概率太低,不太推荐

selenium的写法

driver.findElement(By.tagName("input")).click

selenide的写法

$(By.tagName("input")).click();

3.link定位

selenium的写法

driver.findElement(By.linkText("人民网")).click()

selenide的写法

$(By.linkText("人民网")).click();

4.partial link定位

partial link定位是对link定位的一种补充,通过文本链接的一部分文本来定位元素的方法,可以只取一部份,只要是可识别就行

selenium的写法

driver.findElement(By.partialLinkText("人民")).click()

selenide的写法

$(By.partialLinkText("人民")).click();

看了以上四种定位方法,是不是觉得selenium的写法太繁琐了,selenide就简单多了,所以我决定放弃selenium,只学selenide[奸笑],下面的定位方法,我就不再写selenium的写法啦[大笑]

5.xpth定位

用了以下几种方法式定位,还是有很多没有ID,没有name,也没有class,反正以上四种定位都无法使用.那我们就只能使用xpth定位,刚开始我也以为xpth 定位很难,没有想到其实也有捷径可以取到xpth

(1).绝对路径

看以下图(刚才用演示ID,name定位),在网页上定好位置,点击右键-》Copy->Copy full xpth ,这样就把把路径复制了,然后粘贴在" "双引号里面

$(By.xpath("/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input")).click();

(2).元素属性定位

用上面的图进行定位,元素属性有id,name,button,class,input等等

// // 表示当前页面某个目录下;

// input 表示定位元素的标签名;

// [@id='kw'] 表示这个元素的 id 属性值等于 kw;

$(By.xpath("//input[@name='wd']"))//通过name属性值来定位 $(By.xpath("//input[@id='kw']"))//通过id属性值来定位$(By.xpath("//input[@class='s_ipt']"))//通过class属性值来定位$(By.xpath("//input[contains(@class,'ipt')]"))//通过class属性部份值来定位 $(By.xpath("//label[contains(text(),'百科')]"))//字符定位 $(By.xpath("//input[@id='kw' and @class='su']/span/input"))//使用多个属性定位

(3).层级与属性结合

如果元素本身没有唯一可识别的元素属性值,那可以查找其上一级元素,如果它的上一级元素有唯一可识别的属性值,就可以拿来使用

$(By.xpath("//span[@class='bg s_ipt_wr']/input"))//span[@class='bg s_ipt_wr'] 通过 class 属性定位到父元素,后面/input 就表示父元素下面的子元素

$(By.xpath("//span[@class='bg s_ipt_wr']/input"))//span[@class='bg s_ipt_wr'] 通过 class 属性定位到父元素,后面/input 就表示父元素下面的子元素

今天的元素定位就记录完毕了[666][击掌]

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多