Python 3.x 在弹出窗口中记录python selenium错误

Python 3.x 在弹出窗口中记录python selenium错误,python-3.x,selenium,Python 3.x,Selenium,我正在点击一个超链接,点击会打开一个弹出窗口。我想输入用户名和密码,然后点击登录按钮,但我得到一个不可见元素的错误。我的用户名和密码字段正在填充,但单击“登录”按钮会出现错误 driver = webdriver.Chrome( ) driver.get('https://www.website/') window_before=driver.window_handles[0] print('window before', window_before) driver.find_element_

我正在点击一个超链接,点击会打开一个弹出窗口。我想输入用户名和密码,然后点击登录按钮,但我得到一个不可见元素的错误。我的用户名和密码字段正在填充,但单击“登录”按钮会出现错误

driver = webdriver.Chrome( )
driver.get('https://www.website/')

window_before=driver.window_handles[0]
print('window before', window_before)
driver.find_element_by_class_name("LoginModal").click()
window_after= driver.find_element_by_class_name("loginwindow_2")

print('window after', window_after)

driver.find_element_by_id("username").send_keys("Enter")

driver.find_element_by_id("password").send_keys(" password here")
它正确地填充了用户名和密码,但当我键入它时,它会给我一个错误

driver.find_element_by_class_name("bluebutton2")
错误

文件“C:/Users/myfile/mucode.py”,第21行,在
selenium.common.exceptions.ElementNotVisibleException:消息:元素不可见
(会话信息:chrome=59.0.3071.115)
(驱动程序信息:chromedriver=2.30.477700(0057494ad8732195794a7b32078424f92a5fce41),平台=Windows NT 6.1.7601 SP1 x8664)

谢谢

试试这个,可能不起作用,我假设您正在尝试单击登录按钮

driver.execute_script('arguments[0].click();', driver.find_element_by_class_name('bluebutton2'))

试试这个,可能不起作用,我假设你正在尝试点击登录按钮

driver.execute_script('arguments[0].click();', driver.find_element_by_class_name('bluebutton2'))

页面上有3个元素的类名为“bluebutton2”。第一个是隐藏的,这就是为什么会出现
ElementNotVisibleException
。您只需要使用更具体的选择器来匹配所需的元素。请尝试以下内容:

driver.find_element_by_css_selector('td[valign="middle"]>button.bluebutton2').click()
更新

要处理输入字段,您可以使用下面的代码等待一段时间并避免
ElementNotVisibleException

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

wait(driver, 10).until(EC.visibility_of_element_located((By.ID, "username"))).send_keys("Enter")
wait(driver, 10).until(EC.visibility_of_element_located((By.ID, "password"))).send_keys("password here")

页面上有3个元素的类名为“bluebutton2”。第一个是隐藏的,这就是为什么会出现
ElementNotVisibleException
。您只需要使用更具体的选择器来匹配所需的元素。请尝试以下内容:

driver.find_element_by_css_selector('td[valign="middle"]>button.bluebutton2').click()
更新

要处理输入字段,您可以使用下面的代码等待一段时间并避免
ElementNotVisibleException

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

wait(driver, 10).until(EC.visibility_of_element_located((By.ID, "username"))).send_keys("Enter")
wait(driver, 10).until(EC.visibility_of_element_located((By.ID, "password"))).send_keys("password here")

您好,现在它在下面的一行中给出错误,表示在那里找不到元素>>>>>>>>>>>>>>>>>>>驱动程序。通过id(“用户名”)查找元素。发送密钥(“回车”)您能帮我从那一行输入代码吗?您的意思是
NoTouchElementException
?在
驱动程序上。通过id(“用户名”)查找元素。发送按键(“回车”)
?是!selenium.common.exceptions.ElementNotVisibleException:Message:element NotVisibleException不可见
NoSuchElementException
ElementNotVisibleException
实际上不一样:)检查更新的答案现在它在下面的一行给出错误,表示在那里找不到元素>>>>>>>驱动程序。按id(“用户名”)查找元素。发送密钥(“输入”)你能帮我输入那一行的代码吗?你是说
驱动程序上的
NoSuchElementException
。按id(“用户名”)查找元素。发送按键(“输入”)
?是的!selenium.common.exceptions.ElementNotVisibleException:Message:element不可见
NoSuchElementException
ElementNotVisibleException
实际上不一样:)检查更新的应答hi,这不起作用,但现在它只在这一行给我相同的元素不可见错误>>>>>>>驱动程序。查找\u element_by_-id(“用户名”)。发送_-keys(“回车”)嗨,这不起作用,但现在它给了我相同的错误,元素仅在此行不可见>>>>>>>>>>>>>>>>驱动程序。按_-id(“用户名”)查找_-element。发送_-keys(“回车”)