selenium中Alter等弹出对话框的处理

昨天使用selenium做自动化测试,发现部分页面会弹出alert对话框,找了写资料,大概的意思就是要给弹出的对话框做出相应,不然,后续的处理会失败。

_driver.SwitchTo().Alert() 这样就可以把当前的handle转到到弹出框,可以进行下一步的处理,如accept,dimsiss ,text等属性,就可以弹出框做处理了。

把代码修改,测试了一下,代码可以执行通过了,欢天喜地的回家了,今天来了之后发现,把测试用例整体跑一下,发现很多testcase 发现出错了。出错了开始找问题,

根据提示no alert open 。既然是没有open,在accept,肯定出错啊,就先加个对象不等null的验证。面向对象第一要务是判断对象是否为空啊。面向对象,没对象没办啊。

吃过饭,又测试了一下,还需要加个扩展放方法,判断是否弹出框出现,有弹出框出现,继续处理。没有的话,就直接跳过。

/// <summary>
/// 判断是否弹框出现
/// </summary>
/// <param name="driver"></param>
/// <returns></returns>
public static bool IsAlertPresent(this IWebDriver driver)
{
try
{
driver.SwitchTo().Alert();
return true;
} // try
catch (NoAlertPresentException Ex)
{
return false;
} // catch
}

 

使用  if(_driver.IsAlertPresent){

 driver.SwitchTo().Alert().Accept;

}

转载于:https://www.cnblogs.com/wcLT/p/3413963.html

Selenium,如果你需要模拟点击一个元素并触发可能的弹出对话框,然后切换到IFrame进行操作,你需要首先定位到那个元素,点击它,等待弹出窗口出现(如果需要),然后找到IFrame并切换到其。以下是一个基本示例: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 初始化WebDriver实例 driver = webdriver.Firefox() # 或者使用其他浏览器,如Chrome, Safari等 # 定位到包含弹出对话框的元素 element_to_click = driver.find_element(By.XPATH, 'Your_XPATH_to_the_button') # 替换为实际的XPath或其他定位方式 # 点击元素 element_to_click.click() # 等待弹出对话框出现 try: alert = WebDriverWait(driver, 10).until(EC.alert_is_present()) # 设置超时时间 print("Alert is present!") except TimeoutException: print("No alert was shown!") # 获取或确认对话框内容,根据实际情况选择适当的方法 alert_text = alert.text alert.accept() # 如果是确认对话框,接受它 # 切换到IFrame iframe = driver.find_element(By.XPATH, 'Your_XPATH_to_the_iframe') driver.switch_to.frame(iframe) # 在IFrame内执行更多操作... # ... driver.quit() ``` 记得替换`'Your_XPATH_to_the_button'` 和 `'Your_XPATH_to_the_iframe'` 为实际的元素路径。同时,由于不同的页面结构可能会有所不同,确保选择正确的条件检查和操作方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值