一 . 获取元素定位的方法:
selenium 主要提供了8种定位元素方法:
-
1. findElement( By.id( 元素的id属性名称 ) );
-
2. findElement( By.name( 元素的name属性名称 ) );
- 3. findElement( By.linkText( a标签内的全部文本内容(精确查询) ) );
- 4. findElement( By.partiallinkText( a标签内的部分文本内容(模糊查询) ) );
- 5. findElement( By.tagName( 标签名称(a标签填a,input标签填input) ) );
- 6. findElement( By.className( 元素的class属性名称 ) );
- 7. findElement( By.cssSelector(元素的selector值(浏览器F12点击标签可以直接复制 ) ) );
- 8. findElement( By.xpath( 元素的xpath路径 ) );
1. findElement( By.id( 元素的id属性名称 ) );
<a id="reg-cs" class="regist-btn" href="/logout.html">退出</a>
使用 findElement( By.id("reg-cs") );定位
2. findElement( By.name( 元素的name属性名称 ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>
使用 findElement( By.name( "reg-ht" ) ); 定位
3. findElement( By.linkText( a标签内的全部文本内容(精确查询) ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>
使用 findElement( By.linkText( "退出" ) );定位
4 . findElement( By.partiallinkText( a标签内的部分文本内容(模糊查询) ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>
使用 findElement( By.partiallinkText( "退" ) );定位
或
使用 findElement( By.partiallinkText( "出" ) );定位
5 . findElement( By.tagName( 标签名称(a标签填a,input标签填input) ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>
使用 findElement( By.tagName( "a" ) );定位
6 . findElement( By.className( 元素的class属性名称 ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>
使用 findElement( By.className( "regist-btn" ) );定位
7 . findElement( By.cssSelector(元素的selector值(浏览器F12点击标签可以直接复制 ) ) );
<a id="reg-cs" name="reg-ht" class="regist-btn" href="/logout.html">退出</a>
使用 findElement( By.cssSelector( "#_widget_849 > div > div.user-info > div.hello.clearfix > a.regist-btn" ) );定位
8 . findElement( By.xpath( 元素的xpath路径 ) );
使用 findElement( By.xpath( "/html/body/div[4]/div/div[2]/div/div/div/div[1]/div[2]/a[2]" ) );定位
二 . 获取到元素定位后的常用方法:
selenium 主要提供了5种 “常用” 获取到元素定位后的常用方法:
-
1 . findElement( By.id( 元素的id属性名称 ) ).click();( 点击按钮 )
-
2 . findElement( By.id( 元素的id属性名称 ) ).clear(); ( 清空输入框的数据 )
-
3 . findElement( By.id( 元素的id属性名称 ) ).sendkeys( 需要输入的值 ); ( 输入 )
-
4 . findElement( By.id( 元素的id属性名称 ) ).getText(); ( 获取文本内容 )
-
5 . findElement( By.id( 元素的id属性名称 ) ).getAttribute("textContent"); (获取隐藏属性的文本内容)
三 . 进出iframe
1 . 进入iframe
-
1 . switchTo().frame(0); ( 根据索引进入 )
( 0代表iframe的索引为第几个 )
- 2 . switchTo().frame( findElement(By.xpath( ) ) ); ( 根据xpath路径进入 )
( findElement(By.xpath( ) )代表利用元素定位法的iframe xpath路径 )
- 2 . switchTo().frame( findElement(By.Id( ) ) ); ( 根据Id进入 )
- 3 . switchTo().frame( findElement(By.name( ) ) ); ( 根据name进入 )
- 4 . switchTo().frame( findElement(By.className( ) ) ); ( 根据className进入 )
- 5 . switchTo().frame( findElement(By.tagName( ) ) ); ( 根据tagName进入 )
2 . 退出iframe
-
1 . switchTo().defaultContent(); ( 退出 )
3 . 进入动态iframe
-
1 . switchTo().frame(0); ( 根据索引进入 )
( 0代表iframe的索引为第几个 )
-
2 . findElement(By.xpath( "/html/body/div[4]/div/div[2]" ) )
WebElement ifame = div.findElement(By.xpath("/html/body/div[4]/div/div[2]/iframe"));
switchTo().frame( ifame );
( 利用元素定位法定位到iframe的父级div,然后利用父级div进入iframe , 最后进入iframe )
四 . 断言或做校验方法
1 . 断言用:
-
1 . Assert.assertTrue( Three.aftText( text ).conteans("退出") ); ( 做断言用)
( text 代表利用元素定位法+getText( )获得的 text 文本字符串 ,"退出"代表断言的结果 )
-
2 . Assert.assertEquals( Three.aftText( text ) , "退出" ); ( 做断言用)
( text 代表利用元素定位法+getText( )获得的 text 文本字符串 ,"退出"代表断言的结果 )
2 . 单元测试做数据校验用:
2.1 返回结果为字符串时 :
-
1 . Assert.assertTrue( Three.isOneLine(1,2).conteans("退出") ); ( 做校验 )
( Three.isOneLine(1,2)代表调用类的方法返回的值 ,"退出"代表调用类应获得的值)
-
2 . Assert.assertEquals( Three.isOneLine(1,2) , "退出" ); ( 做校验 )
( Three.isOneLine(1,2)代表调用类的方法返回的值 ,"退出"代表调用类应获得的值)
2.2 返回结果为 boolean 布尔类型时 :
-
1 . Assert.assertTrue( Three.isOneLine(1,2) ); ( 做校验 )
( Assert.assertTrue( Three.isOneLine(1,2) ) 判断返回的值是否为True )
-
2 . Assert.assertFalse( Three.isOneLine(1,2) ); ( 做校验 )
( Assert.assertFalse( Three.isOneLine(1,2) ) 判断返回的值是否为False )
标签:xpath,iframe,元素,---,findElement,测试,div,id,软件测试 From: https://blog.csdn.net/chuanchuankk/article/details/137067579