Python selenium PhantomJS不能发送密钥

2024-04-18 04:57:22 发布

您现在位置:Python中文网/ 问答频道 /正文

Y尝试使用Python3Selenium和{}登录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()时的错误

^{pr2}$

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

我使用Python 3.5.2Selenium 3.3.1和{}


Tags: thenamebrowsersendinputbyusernamelogin