我正在尝试选择一个位于iframe中并且可能位于其他iframe中的元素。
是否可以以某种方式在(python)硒的某个(子)iframe中选择一个元素而无需先选择iframe?有没有办法以某种方式“遍历”每个iframe并检查在哪里可以找到我的元素…?
以及在元素和html内容以及iframe可能只是被加载的情况下该如何做?
不 , WebElement
在不切换到各自的情况下,不可能与iframe
直通内的任何物体相互作用。
Selenium
iframe
加载页面后, Selenium
默认情况下,焦点会停留在上 Top Window
。在 Top Window
包含了其他
iframes
和 framesets
。因此,当我们需要与WebElement
iframe中的a进行互动时,我们必须iframe
通过以下一种方法切换到相应的方法:
我们可以通过3种方式切换到帧。
按框架名称 :
Name
iframe的属性,我们可以通过该属性切换到它。
例:
driver.switch_to.frame("iframe_name")
按帧ID :
ID
iframe的属性,我们可以通过该属性切换到它。
例:
driver.switch_to.frame("iframe_id")
按帧索引 :
假设页面中有10个框架,我们可以使用索引切换到iframe。
例:
driver.switch_to.frame(0)
driver.switch_to.frame(1)
切换回主机 :
我们可以使用 default_content()
或切换回主机 parent_frame()
例:
driver.switch_to.default_content()
driver.switch_to.parent_frame()
切换帧的更好方法将是诱使 WebDriverWait
预期帧的可用性 expected_conditions
设置
frame_to_be_available_and_switch_to_it
为:
通过 Frame ID
:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(By.ID,"id_of_iframe"))
通过 Frame Name
:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(By.NAME,"name_of_iframe"))
通过 Frame Xpath
:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(By.XPATH,"xpath_of_iframe"))
通过 Frame CSS
:
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(By.CSS_SELECTOR,"css_of_iframe"))
问题内容: 我正在尝试选择一个位于iframe中并且可能位于其他iframe中的元素。 是否可以在不选择iframe的情况下以某种方式在(python)selenium中的某个(sub)iframe中选择元素?有没有办法以某种方式“遍历”每个iframe并检查在哪里可以找到我的元素…? 以及在元素和html内容以及iframe可能只是被加载的情况下该怎么做…? 问题答案: 不 , 在不切换到各自的
本文向大家介绍如何处理硒中的帧?,包括了如何处理硒中的帧?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助以下方法来处理Selenium中的帧- switchTo()。frame(frameNumber) 此方法使用帧ID作为参数。框架ID的索引从0开始。如果未找到框架,则会引发NoSuchFrameException。 switchTo()。frame(frameName) 此方法使用开发
问题内容: 我正在尝试使用Java和基于WebDriver的语法从硒的选择列表中选择一个元素。 我有选择列表 我怎么做? 问题答案: 如果速度较慢,请考虑类似
问题内容: 这是我的HTML: 我想仅使用CSS将产品名称(即“ Product1”,“ Product2”等)加粗,并将其类别(即电子,体育等)斜体化。我发现一个老问题,提到无法使用HTML和CSS,但希望现在有解决方案。 问题答案: 只有少数样式属性可以应用于元素。 这是因为这种类型的元素是“已替换元素”的示例。它们与操作系统有关,不属于HTML /浏览器。无法通过设置样式。 有更换插件/库看
我正在使用Java来创建硒测试用例。我的系统基于彼此连接的 Portlet。我正在使用“选择框架”命令来选择门户let。 我尝试了很多东西,但似乎它不是这样工作的: 任何人都可以帮我吗?
问题内容: 我使用的选择标记的格式允许多次选择,但我希望选择的最大数量为10。使用JavaScript或jquery是否可以? 提前致谢! 问题答案: 这是供您使用的一些完整代码…一定要喜欢Google AJAX API Playground :-) 编辑1: 注意:这只允许您选择5,因为我不想复制/粘贴另外10个选项:-)