Python selenium PhantomJS无法发送密钥

时间:2017-04-03 20:30:47

标签: python selenium phantomjs tor

我尝试使用Python3SeleniumPhantomJS登录Twitter。登录工作正常,但是当您在Twitter上使用tor时,Twitter会有第二个身份验证表单:在这种情况下,是与我的帐户关联的电话号码。 我可以选择手机输入标签,但我不能使用方法send_keys()

这是代码:

from selenium import webdriver

userAgent = 'Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0'
key = 'phantomjs.page.settings.userAgent'
webdriver.DesiredCapabilities.PHANTOMJS[key] = userAgent

# use Tor
service = [
    '--proxy=127.0.0.1:' + '9050',
    '--proxy-type=socks5',]
browser = webdriver.PhantomJS(service_args=service)

# Go to login
browser.get('https://twitter.com/login')
# Fill the login
fieldset = browser.find_element_by_tag_name('fieldset')
# Fill the username
input_username = fieldset.find_element_by_name('session[username_or_email]')
input_username.send_keys('your_user')
# Fill with the password
input_password = fieldset.find_element_by_name('session[password]')
input_password.send_keys('password')
# Summit
form = browser.find_element_by_class_name('js-signin')
button = form.find_element_by_tag_name('button')
button.click()

browser.save_screenshot('login.png')

# Find the phone input
phone = browser.find_element_by_id('challenge_response')
phone.send_keys('111222333')

尝试send_keys()

时出现错误
WebDriverException: Message: TypeError - undefined is not a function (evaluating '_getTagName(currWindow).toLowerCase()')

为什么我有这个错误?我不能执行javascript代码(我想它一定是出于同样的原因)。

我使用Python 3.5.2Selenium 3.3.1PhantomJS 2.1

0 个答案:

没有答案