javascript - Python Selenium PhantomJS 单击元素后返回空源

标签 javascript python html selenium phantomjs

See the code

from selenium import webdriver

driver = webdriver.PhantomJS()
driver.get("http://www.metasozluk.com/?r=girdi/goster&g=298794")
driver.page_source
# Returns a whole bunch of HTML page.

driver.find_element_by_css_selector(".entry-list-cats-link").click()
driver.page_source
# Returns '<html><head></head><body></body></html>'

当我在 PhantomJS 上使用 Python 的 Selenium 加载页面时,页面加载良好。然而,当我尝试操作 DOM 元素时,它只是将整个源更改为 <html><head></head><body></body></html> .

这个问题在 Firefox 中也不会出现,但我需要一个 headless 浏览器,而且除了 PhantomJS 之外似乎没有其他选择。这是一个错误吗?

编辑:找到一些日志

我找到了一个日志名称ghostdriver.log与我的脚本位于同一路径上。就是这样:

PhantomJS is launching GhostDriver...
[INFO  - 2015-11-07T20:45:38.121Z] GhostDriver - Main - running on port 51516
[INFO  - 2015-11-07T20:45:39.090Z] Session [8101ecc0-8590-11e5-91d2-17516fa65f1d] - CONSTRUCTOR - Desired Capabilities: {"platform":"ANY","version":"","javascriptEnabled":true,"browserName":"phantomjs"}
[INFO  - 2015-11-07T20:45:39.090Z] Session [8101ecc0-8590-11e5-91d2-17516fa65f1d] - CONSTRUCTOR - Negotiated Capabilities: {"browserName":"phantomjs","version":"1.9.0","driverName":"ghostdriver","driverVersion":"1.0.3","platform":"linux-unknown-64bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}}
[INFO  - 2015-11-07T20:45:39.091Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: 8101ecc0-8590-11e5-91d2-17516fa65f1d
[INFO  - 2015-11-07T20:50:38.119Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW
[INFO  - 2015-11-07T20:55:38.213Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW
[INFO  - 2015-11-07T21:00:38.311Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW
[INFO  - 2015-11-07T21:05:38.330Z] SessionManagerReqHand - _cleanupWindowlessSessions - Asynchronous Sessions clean-up phase starting NOW

我不确定 _cleanupWindowlessSessions部分,也许这是有关问题的线索。

<小时/>

编辑:--ignore-ssl-errors=true 没有解决问题

我做了进一步的编码,但在忽略 ssl 错误时遇到了同样的问题。也有很少的答案说忽略 SSL 错误可以解决问题,但事实似乎并非如此。所以我取消了this answer's validity为了任何遇到此问题的人。

最佳答案

我遇到了同样的问题,很多人报告忽略 ssl 问题可以解决该问题,因此它可能适合您。

self.driver = webdriver.PhantomJS(service_args=['--ignore-ssl-errors=true'])

关于javascript - Python Selenium PhantomJS 单击元素后返回空源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33587734/

相关文章:

javascript - Ajax 发布数据并返回错误消息

python - 我需要什么版本的软件包?

html - Bootstrap 导航栏按钮有效,但按钮本身不显示

javascript - 正则表达式 (HTML/Javascript) - 获取所有数字和句号

javascript - 想要运行仅匹配其他 html 页面上的 id 链接?

javascript - 这是局部变量还是全局变量?

Javascript 新日期

javascript - Jquery datepicker 不适用于给定类内的元素

python - 提交带有 Mechanize HTTP 错误 500 的表单

python - Numpy 独特的二维子数组