selenium在网页上给出用户提示信息后自动消失

selenium 可以使用 driver.execute_script(js) 来执行部分JS代码。虽然 selenium 自动化测试工具本质上是模拟人的部分操作,但是它所具备的功能让他可以突破人的极限去做一些事情,甚至可以做到一些连人都做不到的事情。

比如说在验证码输入错误以后,给出用户重新输入的提示信息:

               

driver.find_element_by_xpath(login_button).click()  # 点击登录
time.sleep(SHORT_PROTECTION_TIME)  # 等待片刻再去点击弹窗确认按钮
while True:
    try:
        driver.switch_to.alert.accept() # 试图点击弹窗
    except NoAlertPresentException:
        break # 没有弹窗,表示验证码输入正确,退出循环
    else: # 有弹窗并已经点掉,则给出提示并等待重新输入验证码
        print("请在网页重新输入正确的验证码!")
        js = """
        var span = document.createElement('span');
        span.innerHTML = '请在10秒内重新输入正确的验证码!';
        span.style.position = 'absolute';
        span.style.top = '49%';
        span.style.left = '47%';
        span.style.color = 'red';
        span.style.fontSize = '20px';
        document.body.appendChild(span);
        setTimeout(function() {document.body.removeChild(span)},9000);
        """
        driver.execute_script(js)
        time.sleep(LONG_PROTECTION_TIME / 2)  # 等待重新输入验证码
        driver.find_element_by_xpath(login_button).click()  # 点击登录
        time.sleep(SHORT_PROTECTION_TIME)  # 等待片刻再去点击弹窗确认按钮

 

猜你喜欢

转载自blog.csdn.net/TomorrowAndTuture/article/details/103061194