我的macOS刚刚将chrome自动升级到v70,我将chromedriver相应升级到了最新版本,但是,由于调用时出现以下错误,我的Selenium自动化测试无法运行
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<div id="root"><div>
错误消息是
tempDriver.manage().window().maximize();
有什么想法吗?我知道Selenium的版本有些旧,但由于公司政策或其他原因,我无法对其进行升级。
巴林
答案 0 :(得分:2)
此错误消息...
org.openqa.selenium.WebDriverException: unknown error: failed to change window state to maximized, current state is normal
...表示 ChromeDriver 无法最大化 Chrome浏览器客户端的窗口状态。
不确定使用 ChromeDriver v2.43 和 Chrome浏览器v70.0 组合如何解决此问题,但看起来像是Feature request : ChromeDriver to support window resizing over a remote connection的回归问题。 / p> Release Notes中的
ChromeDriver v2.43 已明确提及:
已解决的问题1855:功能请求:ChromeDriver支持通过远程连接[[Pri-2]]调整窗口大小
Chrome版本70发行后,有些人报告说使用ChromeDriver在Mac上最大化浏览器窗口不再有效。 ChromeDriver小组已经研究了此问题,并为此创建了修复程序。现在可以在以下位置使用带有修复程序的ChromeDriver构建:
ChromeDriver版本电子邮件的快照:
不过,根据最佳实践来最大化 Chrome浏览器客户端,建议使用ChromeOptions
类,如下所示:
System.setProperty("webdriver.chrome.driver", "C:\\your_directory\\chromedriver.exe");
ChromeOptions opt = new ChromeOptions();
opt.addArguments("disable-infobars");
opt.addArguments("--start-maximized");
opt.addArguments("--disable-extensions");
WebDriver driver = new ChromeDriver(opt);
driver.get("https://google.com");
您可以在driver.manage().window().maximize() issue with ChromeDriver 2.33
中找到详细的讨论答案 1 :(得分:1)
在问题解决之前,您可以使用以下方法绕过它:
自定义窗口大小
driver.manage().window().setSize(new Dimension(1920, 1080));
您可以获得屏幕分辨率
Toolkit toolkit = Toolkit.getDefaultToolkit();
int width = (int) toolkit.getScreenSize().getWidth();
int height = (int) toolkit.getScreenSize().getHeight();
chrome的参数
ChromeOptions options = new ChromeOptions();
options.addArgument("--start-maximized");
JavaScript执行器
((JavascriptExecutor) driver).executeScript("if(window.screen){
window.moveTo(0, 0);
window.resizeTo(window.screen.availWidth, window.screen.availHeight);
};");
答案 2 :(得分:0)
我们遇到了相同的问题,解决方法是注释掉代码:
tempDriver.manage().window().maximize();
答案 3 :(得分:0)
在运行软件包套件并尝试使用ChromeOptions时发现此问题,但没有成功。因此尝试了这种方法并为我工作
Dimension ExpectedDimension=new Dimension(Screen dimensions accordingly)
Dimension Before_Maximising= Driver.manage().window().getSize();
Logging.info("Before_Maximising"+Before_Maximising);
if(Before_Maximising.equals(ExpectedDimension)) {
Logging.info("Already maximised");
}
else {
Driver.manage().window().setSize(ExpectedDimension);
Dimension After_Maximising = Driver().manage().window().getSize();
Logging.info("After_Maximising"+After_Maximising);
}