switch_to_alert().text
时间: 2023-09-15 13:18:54 浏览: 43
switch_to_alert().text 是 Selenium WebDriver 中的一个方法,用于切换到当前页面的弹窗,并获取弹窗中的文本内容。具体用法如下:
1. 使用 switch_to.alert() 方法切换到当前页面的弹窗。
2. 使用 text 属性获取弹窗中的文本内容。
示例代码如下:
```python
from selenium import webdriver
# 创建 WebDriver 对象
driver = webdriver.Chrome()
# 访问页面
driver.get("https://www.example.com")
# 点击按钮,弹出弹窗
button = driver.find_element_by_xpath("//button")
button.click()
# 切换到弹窗,并获取弹窗中的文本内容
alert = driver.switch_to.alert
alert_text = alert.text
print(alert_text)
# 关闭弹窗
alert.accept()
# 关闭浏览器
driver.quit()
```
注意:如果页面没有弹窗,调用 switch_to_alert() 方法会抛出 NoAlertPresentException 异常。
相关问题
import time from ERP_PO_2.Website.test_case.page_object.BasePage import BasePage from selenium.webdriver.common.by import By from ERP_PO_2.Website.test_case.model.myuint import Myunit class Addpage(BasePage,Myunit): PinPai = (By.XPATH, '//*[@id="leftmenu_asset_brand"]/a') XinZeng = (By.XPATH, '//*[@id="content"]/div[2]/div/div[1]/button') # 新增按钮 PP_1 = (By.XPATH, '//*[@id="title"]') # 品牌名称 PP_2 = (By.XPATH, '//*[@id="code"]') # 品牌编码 BaoCun = (By.XPATH, '//*[@id="submitButton"]') # 保存 def CaoZuo(self,data): time.sleep(3) self.find_el(*self.PinPai).click() self.find_el(*self.XinZeng).click() self.find_el(*self.PP_1).send_keys(data[0]) self.find_el(*self.PP_2).send_keys(data[1]) self.find_el(*self.BaoCun).click() time.sleep(3) text = self.driver.switch_to.alert.text self.driver.switch_to.alert.accept() time.sleep(2) print(text) return text def CZ(driver,data): #CZ = Addpage(driver) return Addpage(driver).CaoZuo(data)以上代码封装了吗 体现在哪里
是的,以上代码进行了页面对象模式的封装。封装体现在以下几个方面:
1. 定义了一个基础页面类(BasePage),其他页面对象类继承该类,避免重复编写相同的代码。
2. 使用了By类,封装了查找元素的方法,方便代码编写和维护。
3. 将测试数据作为参数传入到方法中,提高了代码的灵活性和可重用性。
4. 将页面操作方法封装在一个方法中(CaoZuo),方便调用和管理。
5. 封装了一个CZ方法,将Addpage(driver)的实例化和操作方法的调用封装在一起,方便调用和管理。
代码添加注释:a = driver.switch_to.alert.accept() driver.implicitly_wait(2) driver.get_cookies() driver.find_element(By.ID, "managerId").send_keys("admin") time.sleep(1) driver.find_element(By.ID, "passwordText").click() ActionChains(driver)\ .send_keys("Sinosig)(*&7890")\ .perform() driver.find_element(By.ID, "Image1").click() driver.get('http://10.10.2.6:8080/smp/radiuslogservlet?kind=query')
把这段代码添加注释的话,可以这样写:
# 点击弹窗的确认按钮
a = driver.switch_to.alert.accept()
# 隐式等待2秒
driver.implicitly_wait(2)
# 获取当前页面的cookies
driver.get_cookies()
# 在输入框中输入管理员账号
driver.find_element(By.ID, "managerId").send_keys("admin")
# 等待1秒
time.sleep(1)
# 点击密码输入框
driver.find_element(By.ID, "passwordText").click()
# 在密码输入框中输入密码
ActionChains(driver)\
.send_keys("Sinosig)(*")