測試需求:
獲取頁面中下拉框個數,並驗證是否與預期個數一致
方法1:因下拉框的tagname屬性值為select,可通過獲取標簽為select的元素來獲取下拉框個數
-
List<WebElement> elements = driver.findElements(By.tagName( "select"));
-
int number=elements.size();
-
Assert.assertEquals(number, 12);//驗證是否為12
方法2:因下拉框默認顯示“請選擇”,可通過獲取頁面的“請選擇”元素來獲取下拉框個數。
-
List<WebElement> elements = driver.findElements(By.xpath( "//*[text()='請選擇']"));
-
int number=elements.size();
-
Assert.assertEquals(number, 12);//驗證是否為12
xpath用法擴展:
1.contains
driver.findElement(By.xpath("//a[contains(@href, 'logout')]"));
尋找頁面中href屬性值包含有logout這個單詞的所有a元素,其中@后面可以跟該元素任意的屬性名。
driver.findElement(By.xpath("//*[contains(text(), '退出')]"));
直接查找頁面當中所有的退出二字,根本就不用知道它是個a元素了。這種方法也經常用於純文字的查找
如果知道超鏈接元素的文本內容,也可以用
driver.findElement(By.xpath("//a[contains(text(), '退出')]"));
2.starts-with
driver.findElement(By.xpath("//a[starts-with(@class, 'a')]"));
超鏈接上顯示部分或全部文本信息時,可以使用。
尋找class屬性以a開頭的a元素。其中@后面的class可以替換成元素的任意其他屬性.
3.關於網頁中的動態屬性的定位
a.starts-with
例子:input[starts-with(@id,'ctrl')] 解析:匹配以 ctrl開始的屬性值
b.ends-with
例子:input[ends-with(@id,'_userName')] 解析:匹配以 userName 結尾的屬性值
c.contains()
例子:Input[contains(@id,'userName')] 解析:匹配含有 userName 屬性值
--------------------- 本文來自 朝天椒的夏天 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/qq_15158911/article/details/54926682?utm_source=copy