Python 3.x Selenium Python-输入用户名和密码的更紧凑或更具Python风格的方式?
我需要登录一个网站,我已经有了以下代码,可以正常工作:Python 3.x Selenium Python-输入用户名和密码的更紧凑或更具Python风格的方式?,python-3.x,selenium,selenium-webdriver,webdriverwait,expected-condition,Python 3.x,Selenium,Selenium Webdriver,Webdriverwait,Expected Condition,我需要登录一个网站,我已经有了以下代码,可以正常工作: username = driver.find_element_by_name('uname') password = driver.find_element_by_name('password') username.send_keys('username'), password.send_keys('password', Keys.RETURN) 现在,用户名和密码是硬编码到程序中的,但出于安全原因,我最终会要求用户同时提供这两个密码。有
username = driver.find_element_by_name('uname')
password = driver.find_element_by_name('password')
username.send_keys('username'), password.send_keys('password', Keys.RETURN)
现在,用户名和密码是硬编码到程序中的,但出于安全原因,我最终会要求用户同时提供这两个密码。有没有办法让我写的东西更紧凑或更通俗?为了我自己的利益,我正在尽可能地接近PEP8。除非出现运行时错误,否则您的程序完全是Pythonic的 话虽如此,从观点来看,有以下几个问题:
driver.get(url)
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, "'uname'"))).send_keys('username')
driver.find_element_by_name('password').send_keys('password')
driver.find_element_by_css_selector('cssSelector').click()
# incase the elements are with in a <form>
driver.find_element_by_css_selector('cssSelector').submit()
- 您可能会在调用
后开始查找用户名。因此,理想情况下,您必须使get()
,然后按如下方式调用元素成为可点击的()
:send\u keys()
driver.get(url) WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, "'uname'"))).send_keys('username') driver.find_element_by_name('password').send_keys('password')
driver.find_element_by_css_selector('cssSelector').click() # incase the elements are with in a <form> driver.find_element_by_css_selector('cssSelector').submit()
- 此外,我建议避免尝试
,除非您没有其他选择。理想情况下,您应该在登录或登录按钮上调用发送密钥(keys.RETURN)
,如下所示:click()
driver.get(url) WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, "'uname'"))).send_keys('username') driver.find_element_by_name('password').send_keys('password')
driver.find_element_by_css_selector('cssSelector').click() # incase the elements are with in a <form> driver.find_element_by_css_selector('cssSelector').submit()
驱动程序。通过_css_选择器('cssSelector')查找_元素。单击() #如果元素在一个 driver.find_element_by_css_selector('cssSelector')。submit()
WebDriverWait
还是键上。Return
?对不起,我是问为什么不直接使用键。Return
?@Auske一个主要原因是登录
或登录
按钮可以启用Javascript,甚至可以有onclick事件,只有调用单击()
。我只是尝试在我的代码中使用WebDriverWait
,但我无法让它工作。试图找到该元素将超时。但我还是继续更改了键。返回。下面是我的新行:print('Finding username和password并发送两者')
驱动程序。按名称('uname')查找元素。按用户名('send'keys)发送元素。驱动程序。按名称('password')查找元素。按名称('bttn')查找元素。单击()
打印('Logging in')