【问题标题】:Element Not Visible from Modal Window - Selenium Python模态窗口中不可见的元素 - Selenium Python
【发布时间】:2018-11-29 18:20:49
【问题描述】:

我正在尝试登录网页以便从中抓取数据,但每次尝试时,我都会收到错误 Element Not Visible。我试图单击的元素是模式窗口内的一个按钮,但该窗口的 html 仅在单击登录按钮后出现。我可以点击登录按钮,但我无法点击之后弹出的教师按钮。有什么想法吗?

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

login_url = 'https://edpuzzle.com/'
username = '***'
password = '***'
ChromeDriver = r'C:\Users\admin\Python\chromedriver.exe'

driver = webdriver.Chrome(ChromeDriver)
driver.get(login_url)
driver.find_element_by_css_selector('button.btn.btn-default-
transparent').click()
driver.find_element_by_css_selector('p.modal-title.text-lg.text-center.edp-
role-title')
driver.find_element_by_css_selector('button.btn.white-btn.btn-lg.btn-
block.big-btn.edp-teacher-role').click()

【问题讨论】:

    标签: python selenium modal-dialog


    【解决方案1】:

    您试图在按钮实际可见之前单击它。您需要等待一段时间:

    from selenium.webdriver.support.ui import WebDriverWait as wait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    driver.get(login_url)
    driver.find_element_by_id('edp-login').click()
    wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button.btn.white-btn.btn-lg.btn-block.big-btn.edp-teacher-role"))).click()
    

    【讨论】:

    • 刚来这里寻找解决我问题的答案。但我认为你的意思是 from selenium.webdriver.common.by import By 作为第三个导入。
    猜你喜欢
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    相关资源
    最近更新 更多