HTML前端:webdriver流程

b10l07發表於2017-12-01

一、取得瀏覽器的控制

1. 選一種瀏覽器

IE、Firefox、chrome

2. 下載該瀏覽器對應的驅動程式

chromedriver.exe

3. 通過maven下載操作驅動器的程式碼

            <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <version>2.50.0</version>
            <artifactId>selenium-java</artifactId>
        </dependency>

4. 啟動瀏覽器

  1. 把瀏覽器驅動程式安裝路徑配置到環境變數
    變數名一定不能錯
  2. 呼叫程式碼開啟瀏覽器
    WebDriver driver=new ChromeDriver();

二、得開啟要自動化測試的介面

兩種開啟介面的方式:

  1. driver.get("網址");
  2. driver.navigate().to("網址");

三、不能靠眼睛定位元素,得用程式碼定位

1)通過標籤的特殊屬性:

  1. By.id();
  2. By.name();
  3. By.class();

2)使用標準定位語法描述元素,然後去定位

  1. css選擇器
  2. xpath選擇器

xpath語法:

符號 含義 示例
/ 絕對路徑
// 相對路徑
標籤名 指定要定位的標籤型別
[] 屬性定位器 限定標籤的屬性
@屬性名 標識是屬性 @id='studentId'
and 同時滿足多個屬性條件
or 滿足其中一個屬性條件

四、定位到元素,進行自動化操作

1. 按鈕button

  • 標籤:input框
  • 型別:button
  • 操作:click()

2. 檔案上傳file

  • 標籤:input框
  • 型別:file
  • 操作:
    • clear();
    • sendkeys('檔案路徑');

3. 下拉框select

  • 標籤
    • select下拉標籤
    • option選項標籤
  • 操作
    • new Select(定位到的select元素)
    • 選擇選項
      • selectByIndex(序號)
      • selectByValue('實際值')
      • selectByVisibalText('展現的文字')

4. 單選框

  • 標籤:input標籤
  • type屬性:radio
  • 選項組:name屬性,相同的為一組,存放的位置無關
  • 操作
    • 單個:定位,click()
    • 多個:findElements();for迴圈;click()

5. 多選框

  • 標籤:input標籤
  • type屬性:checkbox
  • 選項組:name屬性,相同的為一組,存放的位置無關
  • 操作
    • 單個:定位,click()
    • 多個:findElements();for迴圈;click()

6. 超連結

  • 標籤:a標籤
  • href屬性:href="連結的地址"
  • 展現文字
  • 操作
    • 當前視窗開啟:click()
    • 新標籤頁開啟:shift+ctrl+click()
      • Actions actions=new Actions(driver);
      • actions.keydwon(Keys.SHIFT).keydown(keys.CONTROL).click().perform()
      • 新視窗開啟:shit+click()

五、一次只能控制一個視窗,不同視窗的操作需要切換

相關文章