【发布时间】:2015-12-18 16:06:22
【问题描述】:
我正在尝试使用 selenium 登录表单,但出现了一个奇怪的错误。我很肯定它与用户代理标头有关,但如果不是,我想知道如何去做。
这是表单中的登录功能:
def log_in_phantom(username, password, url):
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = (<My user-agent>)
browser = webdriver.PhantomJS(desired_capabilities = dcap)
browser.get(url)
browser.implicitly_wait(3)
username = browser.find_element_by_id("username")
if username.is_displayed():
username.send_keys(username)
password = browser.find_element_by_id("password")
if password.is_displayed():
password.send_keys(password)
button = browser.find_element_by_class_name("btn-default")
if button.is_displayed:
button.click()
session = browser.session_id
print(browser.current_url)
这是我运行该函数时得到的结果:
selenium.common.exceptions.ElementNotVisibleException: Message: Error Message => 'Element is not currently visible and may not be manipulated'
caused by Request => {<bunch of cookie data>}
在这个 cookie 数据中,我注意到
{"User-agent":"Python-urllib/3.5}
所以我更改标题的尝试没有成功。我是否使用了所需的功能?我还缺少什么?我是网络抓取的新手,所以它真的可以是任何东西。
感谢您的宝贵时间
【问题讨论】:
-
你确定没有其他带有
id="username"的元素吗? -
还有一个,是隐藏字段。
-
你能解决这个问题吗?我也面临同样的问题
标签: python selenium selenium-webdriver phantomjs