如何关闭 iframe selenium python
How to close iframe selenium python
1 单击网站中的按钮,它会像弹出窗口一样显示 iframe,我可以编辑它,但我无法关闭 iframe 我尝试使用 X 按钮,但是当鼠标聚焦在按钮上时,它会更改 class 名称并显示文本mouse , 它没有 id.
这是按钮的来源
<a class="jbox-close" title="Close" onmouseover="$(this).addClass('jbox-close-hover');" onmouseout="$(this).removeClass('jbox-close-hover');" style="position:absolute; display:block; cursor:pointer; top:11px; right:11px; width:15px; height:15px;"></a>
this is code focus mouse
<a class="jbox-close jbox-close-hover" title="Close" onmouseover="$(this).addClass('jbox-close-hover');" onmouseout="$(this).removeClass('jbox-close-hover');" style="position:absolute; display:block; cursor:pointer; top:11px; right:11px; width:15px; height:15px;"></a>
这是我的代码
for link in tittle:
a = link.get_attribute('title')
if (a == "Packaging Details"):
link.click()
time.sleep(2)
print(driver.current_url)
iframe=driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(iframe)
time.sleep(2)
print(driver.find_element_by_id("width").get_attribute('value'))
print(type(driver.find_element_by_id("width").get_attribute('value')))
print(widthctn)
driver.find_element_by_id("width").send_keys("",widthctn)
time.sleep(1)
driver.find_element_by_name("btnSave").click()
time.sleep(1)
driver.switch_to.window(driver.window_handles[1])
``
and this error
raceback(最后一次通话):
文件 "C:/Users/dtung/PycharmProjects/BS4/multiple tab.py",第 79 行,位于
link.click()
文件 "C:\Users\dtung\miniconda3\envs\BS4\lib\site-packages\selenium\webdriver\remote\webelement.py",第 80 行,在点击
self._execute(Command.CLICK_ELEMENT)
文件 "C:\Users\dtung\miniconda3\envs\BS4\lib\site-packages\selenium\webdriver\remote\webelement.py",第 633 行,在 _execute 中
return self._parent.execute(命令,参数)
文件 "C:\Users\dtung\miniconda3\envs\BS4\lib\site-packages\selenium\webdriver\remote\webdriver.py",第 321 行,正在执行
self.error_handler.check_response(回应)
文件 "C:\Users\dtung\miniconda3\envs\BS4\lib\site-packages\selenium\webdriver\remote\errorhandler.py",第 242 行,在 check_response 中
提高 exception_class(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.ElementClickInterceptedException:消息:元素点击被截获:元素 ... 在点 (257、505) 不可点击。其他元素将收到点击:
(会话信息:chrome=81.0.4044.113)
您不能关闭 iframe 而不是关闭 iframe 一旦您完成处理 iframe 上的元素,您可以使用 driver.switch_to.default_content()
将控制权切换回您的父 window
如果您询问有关 iframe 的问题,可以在此处找到答案 Selenium and iframe in html、
但是您的错误看起来像是 element/alert 隐藏了您要单击的实际元素。如果元素不可见或被其他元素隐藏,您可以使用 js 执行器实现点击。
例如:假设点击失败,
btnSave = driver.find_element_by_name("btnSave")
driver.execute_script('arguments[0].click();', btnSave)
1 单击网站中的按钮,它会像弹出窗口一样显示 iframe,我可以编辑它,但我无法关闭 iframe 我尝试使用 X 按钮,但是当鼠标聚焦在按钮上时,它会更改 class 名称并显示文本mouse , 它没有 id.
这是按钮的来源
<a class="jbox-close" title="Close" onmouseover="$(this).addClass('jbox-close-hover');" onmouseout="$(this).removeClass('jbox-close-hover');" style="position:absolute; display:block; cursor:pointer; top:11px; right:11px; width:15px; height:15px;"></a>
this is code focus mouse
<a class="jbox-close jbox-close-hover" title="Close" onmouseover="$(this).addClass('jbox-close-hover');" onmouseout="$(this).removeClass('jbox-close-hover');" style="position:absolute; display:block; cursor:pointer; top:11px; right:11px; width:15px; height:15px;"></a>
这是我的代码
for link in tittle:
a = link.get_attribute('title')
if (a == "Packaging Details"):
link.click()
time.sleep(2)
print(driver.current_url)
iframe=driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(iframe)
time.sleep(2)
print(driver.find_element_by_id("width").get_attribute('value'))
print(type(driver.find_element_by_id("width").get_attribute('value')))
print(widthctn)
driver.find_element_by_id("width").send_keys("",widthctn)
time.sleep(1)
driver.find_element_by_name("btnSave").click()
time.sleep(1)
driver.switch_to.window(driver.window_handles[1])
``
and this error
raceback(最后一次通话): 文件 "C:/Users/dtung/PycharmProjects/BS4/multiple tab.py",第 79 行,位于 link.click() 文件 "C:\Users\dtung\miniconda3\envs\BS4\lib\site-packages\selenium\webdriver\remote\webelement.py",第 80 行,在点击 self._execute(Command.CLICK_ELEMENT) 文件 "C:\Users\dtung\miniconda3\envs\BS4\lib\site-packages\selenium\webdriver\remote\webelement.py",第 633 行,在 _execute 中 return self._parent.execute(命令,参数) 文件 "C:\Users\dtung\miniconda3\envs\BS4\lib\site-packages\selenium\webdriver\remote\webdriver.py",第 321 行,正在执行 self.error_handler.check_response(回应) 文件 "C:\Users\dtung\miniconda3\envs\BS4\lib\site-packages\selenium\webdriver\remote\errorhandler.py",第 242 行,在 check_response 中 提高 exception_class(消息、屏幕、堆栈跟踪) selenium.common.exceptions.ElementClickInterceptedException:消息:元素点击被截获:元素 ... 在点 (257、505) 不可点击。其他元素将收到点击: (会话信息:chrome=81.0.4044.113)
您不能关闭 iframe 而不是关闭 iframe 一旦您完成处理 iframe 上的元素,您可以使用 driver.switch_to.default_content()
如果您询问有关 iframe 的问题,可以在此处找到答案 Selenium and iframe in html、
但是您的错误看起来像是 element/alert 隐藏了您要单击的实际元素。如果元素不可见或被其他元素隐藏,您可以使用 js 执行器实现点击。 例如:假设点击失败,
btnSave = driver.find_element_by_name("btnSave")
driver.execute_script('arguments[0].click();', btnSave)