如何使用 selenium python 使检查窗口处于活动状态?

How to make inspect window active using selenium python?

提问人:sunil shrestha 提问时间:10/23/2018 最后编辑:sunil shrestha 更新时间:10/23/2018 访问量:2022

问:

我正在尝试在 chrome 浏览器中自动执行插件。它需要打开一个检查窗口,并在检查窗口上执行操作。我能够使用机器人类打开检查窗口并在检查 GUI 元素之间导航,但无法在检查窗口中执行 HTML DOM 操作。检查窗口包含 iframe,但我无法从主页切换到这些 iframe。当我尝试在活动页面上列出 iframe 时,它只显示主页中的 iframe,而不是检查窗口中的 iframe。我想切换到使用 iframe 或任何其他方式(如果有的话)检查窗口。到目前为止,我编写的代码是

from pyrobot import Robot
from selenium import webdriver    
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Chrome()
browser.get('https://chrome.google.com/webstore/detail/dynamic-assessment-plugin/fnapgcgphlfhecijolobjodbbnjjpdga')
browser.maximize_window()
browser.implicitly_wait(15)
browser.find_element_by_css_selector("[aria-label='Add to Chrome']").click()

time.sleep(3)
robot = Robot()
robot.addExtension() # customized Robot class to add extension

robot.newtab() # customized Robto class for new tab

browser.switch_to.window(browser.window_handles[1])

browser.get('http://www.walmart.com')    

time.sleep(8)   
robot.inspectElement() # Customized Robot class for inspecting (Ctrl+shift+i)
Selenium iframe 自动化 chrome-web-driver

评论

0赞 Ashok kumar Ganesan 10/23/2018
分享您到目前为止尝试过的代码
0赞 sunil shrestha 10/23/2018
@AshokkumarGanesan代码已更新。

答:

1赞 Ashish Kamble 10/23/2018 #1

当您在 C# 中创建 chromedriver 对象时,这将起作用,您需要通过在 chromeoptions 中添加参数来提供配置文件,

ChromeOptions options = new ChromeOptions();
options.AddArguments("--auto-open-devtools-for-tabs");
browser = new ChromeDriver(DrivePath, options, TimeSpan.FromSeconds(100));

您也可以尝试按F12,它将打开检查窗口 然后你可以使用机器人类或Windows。用于自动化脚本的表单库可管理多个窗口表单。

您的代码是 python 的,为 java 和 C# 提供了相同的答案。
您也可以在以下位置参考更多信息:

评论

0赞 sunil shrestha 10/23/2018
我想这个问题你不清楚。我可以打开检查窗口,但无法在检查窗口中选择元素。
0赞 sunil shrestha 10/25/2018
你怎么能说“你不需要通过检查元素来选择元素”?该插件附加到包含 HTML DOM 的检查窗口。我需要在检查窗口中切换到框架。这不是要结束问题,而是一个真正的问题,到目前为止,SO 中还没有关于这个问题的讨论。
0赞 Sébastien De Spiegeleer 9/26/2021
你@sunilshrestha实现了你的目标?如果是这样,如何?我也在研究这个问题。谢谢!