1. 程式人生 > 其它 >技術分享 | web自動化測試-檔案上傳與彈框處理

技術分享 | web自動化測試-檔案上傳與彈框處理

原文連結

實戰演示

檔案上傳

input 標籤使用自動化上傳,先定位到上傳按鈕,然後 send_keys 把路徑作為值給傳進去.

如圖所示,是企業微信檔案上傳的頁面 定位到標籤為 input,type 為 file 的元素資訊,然後使用 send_keys 把檔案路徑作為值給傳進去。

  • Python 版本
driver.find_element(By.CSS_SELECTOR, "#js_upload_input")\
    .send_keys("./hogwarts.png")

  • Java 版本
driver.findElement(By.cssSelector("#js_upload_input"))\
    .sendKeys("./hogwarts.png");

在頁面操作中有時會遇到 JavaScript 所生成的 alert、confirm 以及 prompt 彈框,可以使用switch_to.alert()方法定位到。然後使用 text、accept、dismiss、send_keys 等方法進行操作。

  • switch_to.alert():獲取當前頁面上的警告框。

  • text:返回 alert、confirm、prompt 中的文字資訊。

  • accept():接受現有警告框,即點選確定。

  • dismiss():解散現有警告框,即點選取消。

  • send_keys(keysToSend):傳送文字至警告框。keysToSend:將文字傳送至警告框。

輸入一段文字點選比如提交按鈕,會彈出確認內容的彈框,這種場景可以使用下面的方式處理:

  • Python 版本
"""Alert彈窗獲取文字與確認操作"""
driver.get("http://sahitest.com/demo/alertTest.htm")
driver.find_element_by_name("b1").click()
# 新增顯示等待,等待彈框的出現
WebDriverWait(driver, 5, 0.5).until(EC.alert_is_present())
# 切換到彈框
alert = driver.switch_to.alert
# 列印彈框的文字
print(alert.text)
#點選確定
alert.accept()
# 點選取消或者關閉彈框
# alert.dismiss()

  • Java 版本
@Test
public void alertTest(){
    // Alert彈窗獲取文字與確認操作
    driver.get("http://sahitest.com/demo/alertTest.htm");
    driver.findElement(By.name("b1")).click();
    // 新增顯示等待,等待彈框的出現
    WebDriverWait wait = new WebDriverWait(driver, 5);
    wait.until(ExpectedConditions.alertIsPresent());
    // 切換到彈框
    Alert alert = driver.switchTo().alert();
    System.out.println(alert.getText());
    //點選確定
    alert.accept();
    //點選取消或者關閉彈框
    // alert.dismiss();
}

  • Python 版本
"""Prompt 彈窗獲取文字、輸入內容、確認操作"""
driver.get("http://sahitest.com/demo/promptTest.htm")
driver.find_element_by_name("b1").click()
#新增顯示等待,等待彈框的出現
WebDriverWait(driver, 5).until(EC.alert_is_present())
#切換到彈框
alert = driver.switch_to.alert
#向彈框輸入一段文字
alert.send_keys('Selenium Alert彈出視窗輸入資訊')
#點選確定
alert.accept()

  • Java 版本
@Test
public void alert1Test() {
    // Prompt 彈窗獲取文字、輸入內容、確認操作
    driver.get("http://sahitest.com/demo/promptTest.htm");
    driver.findElement(By.name("b1")).click();
    // 新增顯示等待,等待彈框的出現
    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(ExpectedConditions.alertIsPresent());
    // 切換到彈框
    Alert alert = driver.switchTo().alert();
    // 向彈框輸入一段文字
    alert.sendKeys("Selenium Alert彈出視窗輸入資訊");
    // 點選確定
    alert.accept();
}

  • Python 版本
"""Confirm彈窗獲取文字、確認、取消操作"""
driver.get("http://sahitest.com/demo/confirmTest.htm")
driver.find_element_by_name("b1").click()
# 等待彈出窗口出現
WebDriverWait(driver, 5).until(EC.alert_is_present())
#切換到彈框
alert = driver.switch_to.alert
#點選確定
alert.accept()
#點選取消
alert.dismiss()

  • Java 版本
@Test
public void confirmTest() {
    // Confirm彈窗獲取文字、確認、取消操作
    driver.get("http://sahitest.com/demo/confirmTest.htm");
    driver.findElement(By.name("b1")).click();
    // 新增顯示等待,等待彈框的出現
    WebDriverWait wait = new WebDriverWait(driver, 5);
    wait.until(ExpectedConditions.alertIsPresent());
    // 切換到彈框
    Alert alert = driver.switchTo().alert();
    // 點選確定
    alert.accept();
    // 點選取消
    alert.dismiss();
}

你好呀,喜歡這篇文章的話煩請點個“贊”哦!萬分感謝~(*^▽^*)   PS:有問題可以聯絡我們哦~v ceshiren001

[>>更多技術文章分享和免費資料領取](https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=bokeyuan&timestamp=1652749976&author=QY)

檔案的上傳與彈框處理,是做web自動化測試的必備技能,大家一定要掌握哦~