Selenium / PhantomJS:无法发送send_keys(TypeError - undefined不是函数)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium / PhantomJS:无法发送send_keys(TypeError - undefined不是函数)相关的知识,希望对你有一定的参考价值。

我的简单代码:

from selenium import webdriver
from time import sleep

browser = webdriver.PhantomJS()
# Maximized the window to make sure the element will be displayed
browser.maximize_window() 
browser.get('https://banhang.shopee.vn/account/signin')
# Delay a few seconds to allow all javascript to be loaded properly
sleep(5)
tag = browser.find_element_by_xpath('/html/body/div[2]/div/div[2]/div/div[4]/div/div/div/div/div[2]/form/div[1]/div[3]/input')
tag.send_keys('1234567890')

引发的例外情况:

 File "/miniconda2/envs/flecom/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 347, in send_keys
    self._execute(Command.SEND_KEYS_TO_ELEMENT, {'value': keys_to_typing(value)})
  File "/miniconda2/envs/flecom/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 494, in _execute
    return self._parent.execute(command, params)
  File "/miniconda2/envs/flecom/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "/miniconda2/envs/flecom/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 163, in check_response
    raise exception_class(value)
WebDriverException: Message: TypeError - undefined is not a function (evaluating '_getTagName(currWindow).toLowerCase()')

如果我将webdriver.PhantomJS()改为webdriver.Chrome(),它没有任何例外。我做错了什么?

其他一些信息:

  • PhantomJS v2.1
  • 硒3.0.2
  • Python 2.7.13
  • Ubuntu 16.04 64bit

PS:我也尝试过在click之前对send_keys元素,但它没有任何区别。

答案

尝试恢复PhantomJS 1.9.8

使用PhantomJS 2.1.1我有同样的错误,并且还原为我解决了它。

以上是关于Selenium / PhantomJS:无法发送send_keys(TypeError - undefined不是函数)的主要内容,如果未能解决你的问题,请参考以下文章

在 Selenium/PhantomJS 中显示 Flash 对象

使用 Python/PhantomJS/Selenium 滚动无限页面

python --selenium+phantomjs爬取动态页面广告源码

selenium+PhantomJS简单爬虫

python selenium结合PhantomJS对ajax异步页面进行压测或者爬虫

使用selenium phantomjs上传文件时,Python脚本会挂起