SecurityError: Permission denied to access property "document" on cross-origin object error clicking on download link in iframe using Selenium Python
SecurityError: Permission denied to access property "document" on cross-origin object error clicking on download link in iframe using Selenium Python
我正在从事一个自动化项目,我正在尝试从网站下载 pdf。该网站仅包含pdf,但网页的文件类型为HTML。 pdf 使用 PDF.js 显示,PDF.js 查看器也在 iframe 中。
当我尝试使用浏览器 javascript 单击该元素时,返回了与跨站点脚本相关的安全错误。
SecurityError: Permission denied to access property "document" on cross-origin object
我想从我的脚本中下载 pdf,使用 selenium 在 python 中编写。当我尝试这个时:
driver.find_element_by_id('download').click()
没有产生任何结果,即使我将焦点切换到 selenium 中的 iframe,下载按钮也没有被点击。
有人知道如何下载 pdf 的解决方案吗?
要点击你要诱导的元素 for the element_to_be_clickable()
and you can use either of the following :
使用ID
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "download"))).click()
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#download"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='download']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
参考
您可以在以下位置找到详细讨论:
- Error: Permission denied to access property “x” due to same/cross origin policy using Selenium?
我正在从事一个自动化项目,我正在尝试从网站下载 pdf。该网站仅包含pdf,但网页的文件类型为HTML。 pdf 使用 PDF.js 显示,PDF.js 查看器也在 iframe 中。
当我尝试使用浏览器 javascript 单击该元素时,返回了与跨站点脚本相关的安全错误。
SecurityError: Permission denied to access property "document" on cross-origin object
我想从我的脚本中下载 pdf,使用 selenium 在 python 中编写。当我尝试这个时:
driver.find_element_by_id('download').click()
没有产生任何结果,即使我将焦点切换到 selenium 中的 iframe,下载按钮也没有被点击。
有人知道如何下载 pdf 的解决方案吗?
要点击你要诱导的元素element_to_be_clickable()
and you can use either of the following
使用
ID
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "download"))).click()
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#download"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id='download']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
参考
您可以在以下位置找到详细讨论:
- Error: Permission denied to access property “x” due to same/cross origin policy using Selenium?