日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java使用自动化测试脚本selenium

發布時間:2023/12/9 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java使用自动化测试脚本selenium 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

記錄幾個Java使用自動化測試腳本selenium的問題

  • 查找元素(by)
    • cssselector
    • xpath
    • 其他比較簡單的
      • By.tagName
      • By.id
      • By.className
      • By.name
  • 賦值
  • 獲取
  • iframe元素
  • shadowRoot

查找元素(by)

cssselector

通過使用標簽的名稱和屬性(id,class)

xpath

通過正則表達式查找,用于多個同元素定位 .注意所有的屬性名稱都用@符號標志 例子:

<html><body><form id="loginForm"><input name="username" type="text" /><input name="password" type="password" /><input name="continue" type="submit" value="Login" /><input name="continue" type="button" value="Clear" /></form> </body> <html> login_form = driver.findElement(By.xpath("/html/body/form[1]")) login_form = driver.findElement(By.xpath("//form[@id='loginForm']")) login_form = driver.findElement(By.xpath("//form[@id='loginForm']/input[2]")) //通過索引拿到指定的標簽對象

其他比較簡單的

By.tagName

標簽名稱 比如input ,li ,button

By.id

標簽的id屬性

By.className

標簽的class屬性

By.name

標簽的name 一般是表單中input,select標簽

賦值

  • 輸入框賦值基本為sendkeys()方法.如果type為file,該方法的值為文件路徑.
  • 下拉選擇框賦值需要將Webelement對象轉為Select對象,然后使用其內置方法進行賦值
  • WebElement ele=driver.findElement(By.id("mytag"));// 實例化select方法Select select_ele=new Select(ele);// 通過select索引定位選擇下拉框元素,注意索引從0開始select_ele.selectByIndex(1);Thread.sleep(1000);// 通過select的value定位選擇下拉框元素select_ele.selectByValue("03");Thread.sleep(1000);// 通過select的文本內容定位選擇下拉框元素select_ele.selectByVisibleText("白居易");

    獲取

    <html><body><p>Are you sure you want to do this?</p><a href="continue.html">Continue</a><a href="cancel.html">Cancel</a> </body> <html>
  • 如果是標簽中的文字,直接用webelement.getText();

  • 是屬性值 webelement.getAttribute(‘屬性名’);
    注: 獲取一般的value屬性值是需要用到getAttribute(‘value’);

  • 獲取下拉框選擇的值:現將WebElement對象轉換為Select對象,然后使用方法:select.getFirstSelectedOption().getText();

  • iframe元素

    有些情況是iframe下的元素,所以我們需要先定位到iframe,然后才能找到其下方的元素:

    可通過name或id、索引、webelement對象切換至iframe
    代碼 driver.switchTo().frame(xxx);
    其構造方法如下

    *補充一點:*同級的iframe不知道如何切換,現在用的方法就是先退出iframe再進入其他的iframe
    driver.switchTo().defaultContent(); // 退出iframe

    shadowRoot

    作為html里的組件渲染–shadowRoot,在selenium中是無法直接定位的.
    我們需要先用執行js的方式找到該元素并返回,就可以操作了(當然也可以直接執行js來做相應的操作)

    String js = ""; JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; jsExecutor.executeScript(js);

    有返回值:

    JavascriptExecutor javascriptExecutor = (JavascriptExecutor) driver;WebElement webElement = (WebElement) javascriptExecutor.executeScript(js);

    總結

    以上是生活随笔為你收集整理的Java使用自动化测试脚本selenium的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。