我看到有a relatively new option到open Chrome with Devtools open from the command line,我已经使用这样的调用从Windows 8.1命令行开始工作了:
c:\Program Files (x86)\Google\Chrome\Application>"chrome.exe" --auto-open-devtools-for-tabs
当我在Selenium(在C#中)创建ChromeDriver
时尝试在同一个框中添加此选项时,该选项似乎被忽略。
var options = new ChromeOptions();
options.AddArgument("auto-open-devtools-for-tabs");
string executingAssembly = System.Reflection.Assembly.GetExecutingAssembly().Location;
string driverPath = Path.Combine(Path.GetDirectoryName(executingAssembly), "ChromeWebDriver");
_driver = new ChromeDriver(driverPath, options);
我尝试了一些主题变体,以确保选项正常运行,包括...
var options = new ChromeOptions();
options.AddArguments(new[] { "start-maximized", "auto-open-devtools-for-tabs"});
......和......
var options = new ChromeOptions();
options.AddArgument("start-maximized");
options.AddArgument("auto-open-devtools-for-tabs");
......和......
var options = new ChromeOptions();
options.AddArgument("start-maximized");
options.AddExcludedArgument("auto-open-devtools-for-tabs");
...以及在每个选项字符串前面设置--
的那些。我从任何一个中得到的都是最大化的窗口。
我觉得Selenium的Chrome网络驱动程序不支持auto-open-devtools-for-tabs
这个论点,但我不确定为什么它不会支持同一套选项为"完整"应用
任何人都有这个选项在C#中使用Selenium,或者知道为什么它不应该在这种情况下工作?
这与this question没有什么不同,但我在这里特别询问C#的auto-open-devtools-for-tabs
选项。该提问者声称没有任何运气的选项,并且询问如何打开""内的#dev; Selenium,在此选项存在之前显式查找方法。
答案 0 :(得分:2)
关注SO-12212504上的帖子并从所选答案开始。
其中一个解决办法就是按下F-12 [Key F12
Documentation]键:
// without an element
new Actions(driver).SendKeys(Keys.F12).Perform();
// send keys to body
new Actions(driver).SendKeys(driver.FindElement(By.XPath("//body")), Keys.F12).Perform();
另一方面,您可以尝试使用ChromeOptions Methods中的AddUserProfilePreference
:
ChromeOptions options = new ChromeOptions();
options.AddUserProfilePreference("auto-open-devtools-for-tabs", "true");
注意 :我不太确定参数名称,但我希望您能找到对应here的内容。
编辑 :使用键盘快捷键进行更多尝试 -
Windows :[F12或Ctrl + Shift + I]
String openDevTools = Keys.chord(Keys.CONTROL, Keys.SHIFT, "I");
driver.FindElement(By.XPath("//body")).SendKeys(openDevTools).Perform();
Mac :[Cmd + Opt + I]
String openDevTools = Keys.chord(Keys.COMMAND, Keys.ALT, "I");
driver.FindElement(By.XPath("//body")).SendKeys(openDevTools).Perform();
答案 1 :(得分:1)
我在VS 2017,Selenium v3.12.1#,Firefox v60.0.2,Chrome v66,Nunit v3.10.1,Gecko Driver v20.1和Chrome驱动程序v2.4(都使用C#)中尝试过这个。
我试图搜索Firefox,但没有取得任何成功。我找到了Chrome v66的解决方案。
请提供以下资料:options.AddArguments("--auto-open-devtools-for-tabs");
这是一个完整的Chrome驱动程序实现:
ChromeOptions options = new ChromeOptions();
options.AddArgument("--start-maximized");
options.AddArguments("disable-infobars");
options.AddArguments("--disable-notifications");
options.AddArguments("--auto-open-devtools-for-tabs");
driver = new ChromeDriver(DrivePath, options, TimeSpan.FromSeconds(100));
另见这篇文章:“List of Chromium Command Line Switches”
以下命令不起作用,这是Geckodriver的问题所以Gecko团队必须为此提供一些解决方案或修复:
driver.FindElement(By.CssSelector("body")).SendKeys(Keys.F12);
Actions action = new Actions(driver); action.SendKeys(Keys.F12); action.Perform();
Actions action = new Actions(driver); action .KeyDown(Keys.Control)
.SendKeys(Keys.F12).KeyUp(Keys.Control).Perform();
Actions action = new Actions(driver); action.SendKeys(Keys.F12); action.Click();
答案 2 :(得分:0)
Ruby :必须安装最新的selenium-webdriver(3.7.0)gem
options1 = Selenium::WebDriver::Chrome::Options.new
options1.add_argument('--auto-open-devtools-for-tabs')
driver = Selenium::WebDriver.for :chrome, options: options1
driver.get("https://stackoverflow.com")