Python Selenium Javascript链接点击无法执行

2024-03-04

我将 Selenium for Python 与 PhantomJS Ghost 驱动程序一起使用,以便单击 href 中包含 Javascript 的链接,例如来自this https://structuredginniemaes.ginnienet.com/Download/关联。我可以很好地获取链接作为一个元素,但是当我尝试单击它时,事情就会出错。这是一些代码(注意 - url 是一个列表,其中第一个元素是 Jscript 链接,第二个元素是链接文本)

def get_jscript_down(self,url):
    driver = webdriver.PhantomJS()
    print(self.exact_url)
    driver.get(self.exact_url)
    elements = driver.find_elements_by_tag_name("a")
    for ele in elements:
        if ele.text == url[1].encode("utf-8").replace("  "," "):
            break
    ele.click()
    print("Cannot yet download %s" % url)

    return False

除了 ele.click() 之外,一切都按我需要的方式工作。当我执行该命令时,我得到一个难看的 WebDriverException。

selenium.common.exceptions.WebDriverException: Message: u'Error Message => \'Click failed: ReferenceError: Can\'t find variable: __doPostBack\'\n caused by Request => {"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"81","Content-Type":"application/json;charset=UTF-8","Host":"127.0.0.1:34441","User-Agent":"Python-urllib/2.6"},"httpVersion":"1.1","method":"POST","post":"{\"sessionId\": \"71c20b50-ca21-11e2-a03c-f58c49e5a1bc\", \"id\": \":wdc:1370025577147\"}","url":"/click","urlParsed":{"anchor":"","query":"","file":"click","directory":"/","path":"/click","relative":"/click","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/click","queryKey":{},"chunks":["click"]},"urlOriginal":"/session/71c20b50-ca21-11e2-a03c-f58c49e5a1bc/element/%3Awdc%3A1370025577147/click"}' ; Screenshot: available via screen

我不太确定为什么这次点击失败。据我所读,我应该可以以这种方式使用 click 。下面是堆栈跟踪的相关部分(从事情开始崩溃之前到结束)



line 283, in get_jscript_down
    ele.click()
  File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/webelement.py", line 54, in click
    self._execute(Command.CLICK_ELEMENT)
  File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/webelement.py", line 228, in _execute
    return self._parent.execute(command, params)
  File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 165, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 158, in check_response
    raise exception_class(message, screen, stacktrace)
  

任何想法将不胜感激。我很困惑。


单击“Privatperson”时出现同样的错误这一页 http://dustin.no。该按钮的 ID 为“btnSelectB2C”。我最终做的是在元素上使用提交:

driver.find_element(:id, 'btnSelectB2C').submit

(这是 Ruby 代码,但我认为如果它适用于您的情况,调整起来应该很简单。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Selenium Javascript链接点击无法执行 的相关文章

随机推荐

  • MigrateDatabaseToLatestVersion 没有运行 Seed() 方法

    我正在尝试自动生成我的数据库 如果它不存在 并运行Seed 方法来填充数据 在我的数据库上下文构造函数中 我有这个 Database SetInitializer new MigrateDatabaseToLatestVersion
  • antMatchers 匹配路径的任意开头

    我有将用于身份验证的 REST 服务 身份验证端点将如下所示 api v 1 authentication API 版本是一个变量 可以更改它以反映更新的版本 一个例子是 api v 2 authentication 我喜欢有一个antMa
  • 使用 FFmpeg 保持宽高比

    我需要使用 FFmpeg 转换一堆视频文件 我运行一个 Bash 文件 可以很好地转换所有文件 但是如果转换的文件不是 16 9 格式 则会出现问题 当我将屏幕尺寸固定为 s 720x400 时 如果原始宽高比为 4 3 FFmpeg 将创
  • 如何将此二维数组的内容保存到文件中

    我需要一些帮助来尝试将二维数组的内容保存到文件中 首先 我不确定文件应该是什么类型等 txt或dat 我已经编辑了该帖子 以便代码采用文本格式而不是图像 这就是我到目前为止所得到的 program CaptureTheSarum APPTY
  • 如何在不加载python中完整json的情况下更新json文件中键的值?

    考虑一下 更新前json文件的内容是 key1 value A key2 value B 我想将 key1 更新为值 C 而不实际使用 json load 打开 json 文件 所以最终的输出应该是 key1 value C key2 va
  • 我不能在 FancyZoom 弹出窗口中使用 JQuery 吗?

    我们正在使用花式变焦 http static railstips org orderedlist demos fancy zoom jquery 在屏幕上生成标准的 javascript 弹出效果 我们希望使用 JQuery 响应用户点击
  • Common Lisp 中 do 循环中的多个值绑定

    如何在 do 循环内绑定从函数返回的多个值 下面的显然是非常错误的 但是这样的事情可能吗 do x y z 3 val fn 3 val fn equal y some val y values x y z 或者也许有一种方法可以使用多值绑
  • 我怎样才能改变kivy窗口位置

    有没有其他方法可以在不使用以下内容的情况下更改窗口位置 from kivy config import Config Config set graphics position custom Config set graphics left
  • 使用 XAMPP Server Linux (Ubuntu) 在 Laravel 4 上迁移时找不到驱动程序

    我已经安装了 Laravel 4 1 一切正常 但是当我尝试使用迁移时 它会抛出一个 PDO 异常 PDO异常 找不到驱动程序 我在 StackOverFlow 上找到了很多答案 但不幸的是 没有一个能解决我的问题 我尝试启用 pdo 扩展
  • 将 NaN 值替换为每列的特定值

    我有一个包含值以及一些 NaN 的数据框 现在我有了列的平均值 我想将特定列的平均值插入到 NaN 值中 例如 ColA 和 ColB 的 NaN 被替换为我有的平均值 https i stack imgur com vAr2p png 我
  • Java 11 迁移:可从多个模块访问包问题

    我正在将 Java 8 项目迁移到 Java 11 使用的 IDE 是 Eclipse 2020 09 我还没有模块化该项目 对于以下进口 import org w3c dom Document import org w3c dom Ele
  • 生成 parquet 文件 - R 和 Python 之间的差异

    我们已经生成了一个parquet文件输入Dask Python 并与Drill R 使用Sergeant包 我们注意到几个问题 的格式Dask i e fastparquet has a metadata and a common meta
  • 将由空格分隔的字符串中的单词分配给变量? C++ [qt] [重复]

    这个问题在这里已经有答案了 我只是想知道将空格分隔的字符串中的单词分配给变量的技术术语叫什么 这样我就可以查找它的教程 任何术语 链接或解释将不胜感激 你可以这样做 QString lineText some sample words QS
  • 在 Sitecore MVC 中的视图中获取媒体 url

    我有一个存储在媒体库中的 mp3 文件 它在项目的媒体字段中被引用 我可以通过在 Web 表单或类中执行 Sitecore Resources Media MediaManager GetMediaURL 来获取 URL 但是如何在 MVC
  • 在 smartGWT 中打开/保存文件

    我已经实现了 RPCService RPCServiceAsync 和 RPCServieImpl 单击按钮后 将调用服务器端的服务 它将从数据库中获取数据并创建文件 创建文件后 我需要在客户端打开该文件 并需要提示一个包含打开 保存选项的
  • ServiceStack - 依赖关系似乎没有被注入?

    我有以下存储库类 public class Repository
  • 微服务架构中的数据库位置

    我们有一个整体应用程序 现在正在使用容器将其转换为微服务架构 我们的微服务是stateful 即他们需要从数据库插入 检索数据 根据微服务架构 每个微服务应该有自己的数据 即我们案例中的数据库 我的问题是where应该部署每个微服务的数据库
  • 实体框架数据库优先与 Oracle 数据库

    我正在开发一个 ASP NET WebForms 应用程序 其中实体框架数据库优先与 SQL Server 连接 并且我想将相同的实体数据模型与 Oracle 数据库连接 我的担忧是 如何在我的开发机器上安装 Oracle 数据库引擎进行测
  • 使用用户定义的运行时属性的 UIView Shadow

    当我使用 用户定义的运行时属性 时 我很难显示阴影 如果我使用代码 它似乎工作完全正常 如下所示 func formatView view UIView cornerRadius Bool if cornerRadius view laye
  • Python Selenium Javascript链接点击无法执行

    我将 Selenium for Python 与 PhantomJS Ghost 驱动程序一起使用 以便单击 href 中包含 Javascript 的链接 例如来自this https structuredginniemaes ginni