Python中文
首页
教程
问答
标签
搜索
登录
注册
Python selenium如何在带有参数的JavaScript元素上执行execute_script
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想从网站上下载文件。 当我在浏览器中检查元素时,我得到的结果是:</p> <pre><code><td width="3%" align="left" id="tdvPDF0" colspan="3"> <a href="#" onclick="javaScript:downloadClicked('JRAOB2SNRXEAPX2', 0, 'PDF'); return false;" onmouseover="window.status='CTNF'; return true" onmouseout="window.status=''; return true">PDF</a> /&nbsp; <a href="#" onclick="javaScript:downloadClicked('JRAOB2SNRXEAPX2', 0, 'XML_LINK'); return false;" onmouseover="window.status='CTNF'; return true" onmouseout="window.status=''; return true">XML</a> /&nbsp; <a href="#" onclick="javaScript:downloadClicked('JRAOB2SNRXEAPX2', 0, 'DOCX'); return false;" onmouseover="window.status='CTNF'; return true" onmouseout="window.status=''; return true">DOCX</a> </td> </code></pre> <p>我想下载这三个文档,即PDF、XML和DOCX。 这个JavaScript可以接受三个参数。在这种情况下,它们是: 1JRAOB2SNRXEAPX2(字符串) 20(整数) 三。PDF(字符串)</p> <p>我不知道如何确定第一个参数的正确输入(在本例中为“JRAOB2SNRXEAPX2”)</p> <p>我想让我的代码工作,不管第一个论点。在</p> <p>以前,当我遇到JavaScript函数时,我使用了以下方法:</p> ^{pr2}$ <p>这通常是可行的,但是我从未遇到过像本例中那样带有参数的JavaScript,例如downloadclicted('JRAOB2SNRXEAPX2',0,'PDF')</p> <p>我尝试了以下方法,但没有成功:</p> <pre class="lang-py prettyprint-override"><code>driver.execute_script(downloadClicked('JRAOB2SNRXEAPX2', 0, 'PDF')) driver.execute_script(downloadClicked(''JRAOB2SNRXEAPX2', 0, 'PDF'')) driver.execute_script(downloadClicked('JRAOB2SNRXEAPX2', 0, 'PDF')); return false; </code></pre> <p>以及许多其他类似的选择。在</p> <p>我也试过:</p> <pre class="lang-py prettyprint-override"><code>javascript = driver.find_element_by_id('tdvPDF0').click() driver.execute_script(javascript) </code></pre> <p>此外,我还试过:</p> <pre class="lang-py prettyprint-override"><code>driver.find_element_by_id('tdvPDF0').click() </code></pre> <p>当前函数的代码如下所示:</p> <pre class="lang-py prettyprint-override"><code>def private_pair_ifw_downloader(driver, application_number, pause=1): private_pair_enter_application(driver, application_number) time.sleep(pause) driver.execute_script('submitTab("ifwtab")') time.sleep(pause) driver.execute_script('"javaScript:downloadClicked(''JRAOB2SNRXEAPX2', 0, 'PDF''); return false;"') </code></pre> <p>我希望代码调用JavaScript函数,而JavaScript函数又应该下载PDF文件,但是我收到了以下错误:</p> <p>回溯(最近一次呼叫): 文件“C:/Workspaces/patents\u repo/USPTO_scraper/USPTO_private_pair”_刮板.py“,第41行,英寸 专用下载器(驱动程序“1572321”) 文件“C:\Workspaces\patents\u repo\utils\web_实用工具.py“,第211行,在私有的对ifw下载器中 driver.execute_脚本('“javaScript:下载已单击(“JRAOB2SNRXEAPX2”,0,“PDF”);返回false;“') 文件“C:\Users\eitan\Anaconda3\lib\site packages\selenium\webdriver\remote\网络驱动程序.py“,第636行,在execute_脚本中 “args”:已转换的\u args})['value'] 文件“C:\Users\eitan\Anaconda3\lib\site packages\selenium\webdriver\remote\网络驱动程序.py“,第321行,在execute中 self.error_处理程序.检查_响应(response) 文件“C:\Users\eitan\Anaconda3\lib\site packages\selenium\webdriver\remote\错误处理程序.py“,第242行,在check_response中 引发异常_类(消息、屏幕、stacktrace) selenium.common.异常.WebDriverException:消息:未知错误:运行时.evaluate引发异常:SyntaxError:意外的标识符 (会话信息:chrome=76.0.3809.100)</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果您不知道字符串,可以尝试以下方法:</p> <pre><code>driver.execute_script('document.querySelector("a[onclick*=PDF]").onclick()') </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
9 回答
如何添加表示整数的擦边字符串?
4 回答
如何添加要在Bokeh中使用的新font.ttf文件?
8 回答
如何添加要显示的矩阵XY轴编号和XY轴
8 回答
如何添加计数?
9 回答
如何添加计数器函数?
6 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
4 回答
如何添加计数器来跟踪while循环中的月份和年份?
4 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
2 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
10 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
4 回答
如何添加评论拉梅尔亚姆
2 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
2 回答
如何添加谷歌地点自动完成到Flask?
3 回答
如何添加超时、python discord bot
7 回答
如何添加超过1dp的检查
4 回答
如何添加距离方法
7 回答
如何添加跟随游戏的敌人精灵
9 回答
如何添加路径以便python可以找到程序?
3 回答
如何添加身份验证/安全性以使用happybase访问HBase?
1 回答