Selenium例外:消息:元素不可见

时间:2017-06-09 10:51:06

标签: python selenium

我尝试打开url并填写登录名和pwd并打开它。我用

<pre>
Welcome to my app, hope you will enjoy
</pre>

但我得错误

driver = webdriver.Chrome() driver.get(auth_url) login = driver.find_element_by_name("login") login.send_keys(login) pwd = driver.find_element_by_name("passwd") pwd.send_keys(pwd) btn = driver.find_element_by_class_name('button2 button2_theme_action button2_size_m button2_type_submit i-bem') btn.click()

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible看起来像

html-code

3 个答案:

答案 0 :(得分:1)

在发送密钥之前添加等待时间

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.ui import WebDriverWait
    driver.set_window_size(1920, 1080)
    wait = WebDriverWait(wd, 10)
    login = wait.until(EC.element_to_be_clickable((By.NAME, "login")))
    login.send_keys(login)

然后密码!!

请参阅此documentation

希望这会有所帮助!!

答案 1 :(得分:1)

如果等待时间没有解决你的问题,有时我会用这个解决它:

driver.set_window_size(1920, 1080)

或更大,我可以使用(4096,3112)

答案 2 :(得分:1)

我不相信find_element_by_class_name()可以使用完整的类名列表。尝试只指定其中一个。它在HTML中看起来很独特:

btn = driver.find_element_by_class_name('button2_theme_action')