檔案上傳與彈框處理
實戰示範
檔案上傳
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");
- 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();
}