我不是专业的程序员,所以请原谅任何愚蠢的错误 - 我正在做一些研究,我正在尝试使用Selenium登录数据库来搜索大约1000个术语。
我有两个问题: 1.如何在重定向到页面上的组织标志后使用Selenium登录 2.如何搜索数据库
直到我解决1,我才能真正达到2,所以我真的只是询问1.
这是我到目前为止的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
path_to_chromedriver = 'C:/Users/Kyle/Desktop/chromedriver' # change path as needed
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
url = 'http://library.universityname.edu/corpaffils'
browser.get(url)
username = selenium.find_element_by_id("login_id")
password = selenium.find_element_by_id("login_password")
username.send_keys("my username")
password.send_keys("my password")
selenium.find_element_by_name("submit").click()
当我导航到上面的URL时,它会将我引导到我的组织登录页面(例如,login.universityname.edu),我应该可以输入我的用户名和密码,然后它会指示我数据库,但是当我执行上面的代码时,它不会登录我。
我可以在组织登录页面上找到的html如下所示:
<li><label for="login_id">ID:</label><input id="login_id" placeholder="ID" type="text" NAME="user" SIZE="20" VALUE=""/></li>
...
...
<li><label for="login_password">Password:</label><input id="login_password" placeholder="Password" type="password" NAME="pass" SIZE="20" /></li>
...
...
<ul class="submit">
<li><input type="SUBMIT" name="submit" value="Sign in"></li>
</ul>
我认为可能有两个问题,但我不确定它是什么: 1.我的代码试图在重定向之前输入登录信息,因此它不会进入任何东西;要么 2.我的Selenium代码没有正确识别组织登录的字段,因此它不会登录我;要么 3.两者
我需要做些什么才能解决重定向问题?我是否正确识别登录字段并准确处理它们?
答案 0 :(得分:4)
当您找到元素时,将selenium
替换为browser
,这将有效。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
path_to_chromedriver = 'C:/Users/Kyle/Desktop/chromedriver' # change path as needed
browser = webdriver.Chrome(executable_path = path_to_chromedriver)
url = 'http://library.universityname.edu/corpaffils'
browser.get(url)
username = browser.find_element_by_id("login_id")
password = browser.find_element_by_id("login_password")
username.send_keys("my username")
password.send_keys("my password")
browser.find_element_by_name("submit").click()
您不需要为重定向做任何事情。它会在登录后自动重定向。
N.B:完成后不要忘记close
和quit
浏览器。