我想从网站上下载文件。 当我在浏览器中检查元素时,我得到的结果是:
<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>
/
<a href="#" onclick="javaScript:downloadClicked('JRAOB2SNRXEAPX2', 0, 'XML_LINK'); return false;" onmouseover="window.status='CTNF'; return true" onmouseout="window.status=''; return true">XML</a>
/
<a href="#" onclick="javaScript:downloadClicked('JRAOB2SNRXEAPX2', 0, 'DOCX'); return false;" onmouseover="window.status='CTNF'; return true" onmouseout="window.status=''; return true">DOCX</a>
</td>
我想下载这三个文档,即PDF、XML和DOCX。 这个JavaScript可以接受三个参数。在这种情况下,它们是: 1JRAOB2SNRXEAPX2(字符串) 20(整数) 三。PDF(字符串)
我不知道如何确定第一个参数的正确输入(在本例中为“JRAOB2SNRXEAPX2”)
我想让我的代码工作,不管第一个论点。在
以前,当我遇到JavaScript函数时,我使用了以下方法:
^{pr2}$这通常是可行的,但是我从未遇到过像本例中那样带有参数的JavaScript,例如downloadclicted('JRAOB2SNRXEAPX2',0,'PDF')
我尝试了以下方法,但没有成功:
driver.execute_script(downloadClicked('JRAOB2SNRXEAPX2', 0, 'PDF'))
driver.execute_script(downloadClicked(''JRAOB2SNRXEAPX2', 0, 'PDF''))
driver.execute_script(downloadClicked('JRAOB2SNRXEAPX2', 0, 'PDF')); return false;
以及许多其他类似的选择。在
我也试过:
javascript = driver.find_element_by_id('tdvPDF0').click()
driver.execute_script(javascript)
此外,我还试过:
driver.find_element_by_id('tdvPDF0').click()
当前函数的代码如下所示:
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;"')
我希望代码调用JavaScript函数,而JavaScript函数又应该下载PDF文件,但是我收到了以下错误:
回溯(最近一次呼叫): 文件“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)
您所要做的就是用双引号将您的输入包装起来以执行_脚本。在
如果您不知道字符串,可以尝试以下方法:
相关问题 更多 >
编程相关推荐