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)  # 等待片刻再去點擊彈窗確認按鈕

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章