在基于Chromium的浏览器中使用Selenium更改窗口大小



我正在使用Selenium 2.35.0来测试基于Chromium的浏览器。我使用的是Chrome驱动程序版本2.43.600233,并按照
中的建议将我的应用程序名称设置为Chrome,版本设置为2.43.60023https://forum.qt.io/topic/96202/unrecognized-chrome-version-when-using-selenium-python-bindings-and-chromedriver

"我也遇到了同样的问题,破解它的方法是将您的QT applicationName和applicationVersion设置为";铬";以及";69.0.3497.128〃">

然后一切都很好。我只是在尝试使用最大化、最小化、更改窗口大小时遇到了问题

driver.manage().window().maximize(); 
driver.manage().window().setSize(d);

我遇到这个错误

{"代码":-32601,"消息":"未找到Browser.getWindowForTarget">

当我搜索那个错误时,我发现了这个问题

Сchromedriver:如何添加对基于Chromium的浏览器的支持

答案提到

我提前警告你,你不应该使用window_size参数,因为Chromium不支持它,否则我们将遇到错误:[Facebook\WebDriver\Exception\UnknownServerException]未知错误:未处理的检查器错误:{"代码":-32601,"消息":"未找到Browser.getWindowForTarget"}。

有什么破解方法可以解决这个问题吗。当我调整窗口大小时,我需要测试我的浏览器。

提前非常感谢。

我可以告诉你,在所有最新的Chrome版本上(追溯到几年前(,使用最新的Chromedriver,在C#中设置驱动程序。管理((。窗尺寸对我来说很合适。但是,我不熟悉像你这样设置应用程序名称和版本。如果你不先调用maximize((,它能工作吗?

我使用xdotool调整了大小http://manpages.ubuntu.com/manpages/trusty/man1/xdotool.1.html.在我的java代码中,我有这个函数

public void xdoWindowResize(String width,String height)
{
String  title= driver.getTitle();
try{
ProcessBuilder pb = new ProcessBuilder("./resize.sh", title,width,height);
Process p = pb.start();
}
catch (Exception e) {System.out.println(e);}
}

和resize.sh

#!/bin/sh
my_id=$(xdotool search --name "$1")
xdotool windowsize $my_id $2 $3

相关内容

  • 没有找到相关文章

最新更新