alert作为一个弹窗,会在网页点击某个模块时弹出,在selenium里,进入到alert,需要通过swtch_to.alert命令,下面我以登录jpress表达我的看法:
WebDriverWait(self.driver, 5).until(EC.alert_is_present()) # 等待5S直到alert出现并切换过去
alert = self.driver.switch_to.alert
sleep(3)
if alert.text == expected: # 比对发现文本相匹配
alert.accept()
# assert alert.text == expected
# alert.accept()
webDriverWait-显式等待,
WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)
- driver:浏览器驱动
- timeout:最长超时时间,默认以秒为单位
- poll_frequency:检测的间隔步长,默认为0.5s
- ignored_exceptions:超时后的抛出的异常信息,默认抛出NoSuchElementExeception异常。
与until相关方法配合使用
WebDriverWait(driver,10).until(method,message="")
调用该方法提供的驱动程序作为参数,直到返回值为True
WebDriverWait(driver,10).until_not(method,message="")
调用该方法提供的驱动程序作为参数,直到返回值为False
如果识别到页面有alert时,则可以跳转到上面进行操作