当前位置: 首页 > 面试题库 >

带有Phantomjs的Python Selenium-单击失败:ReferenceError:无法找到变量

金慈
2023-03-14
问题内容

我使用selenium
webdriver编写python脚本以从网站获取一些数据,然后我试图单击此网页中的下一步按钮。定义按钮的位置:

<a id="ctl00_FullRegion_npsGridView_lnkNext" class="nextCol" href="javascript:__doPostBack('ctl00$FullRegion$npsGridView$lnkNext','')">Next</a>

在Python中使用以下代码

URL='http://www.nordpoolspot.com/Market-data1/Elspot/Area-Prices/ALL1/Hourly/'
nextId="ctl00_FullRegion_npsGridView_lnkNext"
browser=webdriver.PhantomJS('./phantomjs')
browser.get(URL)
nextBtn=browser.find_element_by_id(nextId)
time.sleep(5)
nextBtn.click()

当使用Firefox或chrome Webdriver时,此方法效果很好,但是使用Phantomjs时,出现以下错误。

selenium.common.exceptions.WebDriverException: Message: u'Error Message => \'Click          
failed: ReferenceError: Can\'t find variable: __doPostBack\'\n caused by Request

很多Google搜索都会出现此错误,但是当使用phantomjs时,havnt确实找到了一种解决方法。


问题答案:

尝试发送其他User-Agent标头:

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

user_agent = (
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " +
    "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36"
)

dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = user_agent

browser = webdriver.PhantomJS(desired_capabilities=dcap)


 类似资料:
  • 问题内容: 我有一个关于在Grunt上使用茉莉花的问题。我不断出错 ReferenceError:找不到变量:require at 每当我运行茉莉花测试时。这是我的Gruntfile.js的茉莉花条目: 我可以在没有需求的情况下运行虚拟测试,但是像这样在测试中包含需求时,会出现需求错误。 问题答案: 我有同样的问题。只需安装此节点软件包并将此行添加到您的Gruntfile中,require应该重新

  • 我正在尝试建立一个到远程服务器的ssh隧道,如下所述:使用Mysql Db从Heroku到远程服务器的ssh 但我只是想下载这些宝石就挂断了。我补充说: 但是,当我执行(甚至只是在命令行上执行)时,我会得到: 根据NetSSH的自述文件(https://github.com/net-ssh/net-ssh),我检查了Ruby的OpenSSL绑定--它们看起来不错: 我不确定这是否相关,但当我尝试下

  • 问题内容: 我尝试在Android Studio中导入项目。导入时,我在Gradle中遇到了一个错误: 我努力了 : 重新下载依赖项并同步项目:失败(相同错误)。 停止Gradle构建过程:失败(相同错误)。 删除主目录中的.graddle:失败(相同错误)。 使缓存无效并重新启动失败(相同的错误)。 卸载并重新安装Android Studio和SDK:失败(相同错误)。 /build.gradl

  • 在这个WSL 1发行版中找不到命令。我们建议将此发行版转换为WSL 2,并在Docker桌面设置中激活WSL集成。 看见https://docs.docker.com/docker-for-windows/wsl/详情请参阅。 无法更改为WSL2,也无法安装docker:

  • 问题内容: 我有一个工作脚本,可以使用selenium登录到站点,如下所示: script.py 通过以下方式在安装了Firefox的 亚马逊Ubuntu盒子 上运行该脚本: 我得到的错误是: selenium.common.exceptions.NoSuchElementException:消息:u’无法找到元素:{“ method”:“ id”,“ selector”:“ content”}’