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(“回车”)