我尝试打开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
答案 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')