selenium “could not be scrolled into view”


學習selenium對話框處理出現錯誤

a.py內容:

from selenium import webdriver

import time
driver = webdriver.Firefox()
driver.get("http://www.baidu.com/")

time.sleep(3)
#點擊登錄鏈接
driver.find_element_by_name("tj_login").click()
#通過二次定位找到用戶名輸入框
div=driver.find_element_by_class_name("tang-content").find_element_by_name("userName")
div.send_keys("username")
#輸入登錄密碼
driver.find_element_by_name("password").send_keys("password")
#點擊登錄
driver.find_element_by_id("TANGRAM__PSP_10__submit").click()
driver.quit()

運行a.py的時候出現 ElementNotInteractableException: Message: Element <a class="lb" href="https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F&sms=5" name="tj_login"> could not be scrolled into view 不能跳出對話框
經網上查找是因為不可見元素定位原因,某些情況元素的visibility為hidden或者display屬性為none,我們在頁面看不到但是實際是存在頁面的一些元素,這時候用 is_displayed() 來判斷

改過a.py內容

#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("http://www.baidu.com/")
#點擊登錄鏈接
time.sleep(3)
element0=driver.find_elements_by_name("tj_login")
for ele0 in element0:
    if ele0.is_displayed():
        ele0.click()
#通過二次定位找到用戶名輸入框
div=driver.find_element_by_class_name("tang-content").find_element_by_name("userName")
div.send_keys("username")
#輸入登錄密碼
driver.find_element_by_name("password").send_keys("password")
#點擊登錄
driver.find_element_by_id("TANGRAM__PSP_10__submit").click()
driver.quit()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM