当前位置: 首页 > 知识库问答 >
问题:

无法在MAC上使用Selenium Webdriver最大化Safari浏览器

吉嘉珍
2023-03-14

我们正在使用Selenium和Java来自动化我们的Web应用程序。我们有工作代码可以在Windows操作系统上运行三种浏览器(即Chrome,Firefox-最新版本)的自动测试脚本。

我们已经得到了在MAC操作系统--Safari浏览器上运行自动化测试脚本的需求。

环境详细信息:

MAC OS版本:macOS Sierra版本10.12.5

Safari浏览器版本:10.1.1(12603.2.4)

Selenium独立服务器版本:3.4.0

Java版本:1.8.0_112

将MAC VM与VNC viewer连接起来(Sys管理团队为我们的测试提供了MAC VM)。

当在MAC上执行测试脚本时,下面的代码并没有最大化Safari浏览器,它在Windows上的其他浏览器(如Chrome和Firefox)上运行良好。由于这个原因,我们无法找到应用程序上的一些控件。

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

我们没有得到任何异常,代码正在执行,但没有执行任何操作。

请帮助解决Mac上的Safari浏览器最大化问题。

真的,我以为我的问题已经解决了,通过这个解决方案,尝试代码最大化Safari浏览器,但得到了异常。

代码:

 SafariOptions options = new SafariOptions();
options.setUseCleanSession(true);
driver = new SafariDriver(options);
JavascriptExecutor jse = (JavascriptExecutor)driver;
String screenWidth = html" target="_blank">jse.executeScript("return screen.availWidth").toString();
String screenHeight = jse.executeScript("return screen.availHeight").toString();
int intScreenWidth = Integer.parseInt(screenWidth);
int intScreenHeight = Integer.parseInt(screenHeight);
org.openqa.selenium.Dimension d = new org.openqa.selenium.Dimension(intScreenWidth, intScreenHeight);
driver.manage().window().setSize(d);

例外情况:

2017年8月07日3:11:53 PM org.openqa.selenium.remote.ProtocolHandshake创建过程信息:检测到线程“main”org.openqa.selenium.NoSuchWindowException中的方言:OSS异常:无法满足使用窗口的请求,因为找不到该窗口。(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时时间:27毫秒构建信息:版本:“3.4.0”,修订版:“5234B32”,时间:“2017-03-10 09:04:52-0800”系统信息:主机:“mac.local”,IP:“fe80:0:0:0:0:4c6:11dc:3f91:11f8%en0”,OS.name:“Mac OS X”,OS.arch:“x86_64”,OS.version:“10.12.6”,java.version:“1.8.0_121”驱动程序信息:org.openqa.selenium.safari.safaridriver功能[{Instance(DelegatingConstructorAccessorImpl.java:45)在java.lang.Reflect.Constructor.newInstance(Constructor.java:423)在org.openqa.selenium.remote.errorhandler.createThrowable(errorhandler.java:216)在org.openqa.selenium.remote.errorhandler.throwifresponseFailed(errorhandler.java:168)在

共有2个答案

宗政洋
2023-03-14

我们已经观察到新驱动程序库的bug。您可以使用稍微旧一点的jars,它能够处理新的浏览器版本。

您还可以使用其他选项最大化浏览器窗口。

示例:-

添加以下选项并将其传递给驱动程序:-

    chromeOptions.addArguments("--start-maximized");

完整的代码如下所示:-

System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--start-maximized");
driver = new ChromeDriver(chromeOptions);

Toolkit toolkit = Toolkit.getDefaultToolkit();
int Width = (int) toolkit.getScreenSize().getWidth();
int Height = (int)toolkit.getScreenSize().getHeight();
//For Dimension class, Import following library "org.openqa.selenium.Dimension"  
driver.manage().window().setSize(new Dimension(Width,Height));
driver.get("https://google.com");

((IJavaScriptExecutor)driver).ExecuteScript("window.resizeTo(1024, 768);");

在狩猎旅行中试试这个:-

JavascriptExecutor jse = (JavascriptExecutor)driver;
String screenWidth = jse.executeScript("return screen.availWidth").toString();
String screenHeight = jse.executeScript("return screen.availHeight").toString();
int intScreenWidth = Integer.parseInt(screenWidth);
int intScreenHeight = Integer.parseInt(screenHeight);
Dimension d = new Dimension(intScreenWidth, intScreenHeight);
driver.manage.window.setSize(d);

下面的文章将有这些详细的例子:-

http://www.abodeqa.com/2015/01/20/maximite-window-using-selenium-webdriver-and-by-using-abstract-window-toolkit/

希望对您有帮助:)

芮叶秋
2023-03-14

将Safari版本升级到11.0(12604.1.35)后,Safari浏览器最大化问题已得到解决

工作代码为

driver.manage().window().maximize();
 类似资料:
  • 我已经编写了简单的代码,在Mac上使用selenium web驱动程序在eclipse中打开Safari web浏览器。还在哪里寻找Safari exe以及在哪里放置它在mac plzz上help.thanks 我收到了这个错误 下面的强文本错误 2016年9月24日凌晨1:22:31 org.openqa.selenium.safari。SafariDriverServer启动信息:服务器启动于

  • 我有一个selenium代码,它在Windows 7 for Safari浏览器上成功运行,但当我在MAc机器上运行Safari Browser中的类似代码时。 但我犯了一个错误。它正在打开新的Safari浏览器,但没有点击URL。我的代码是:= 我也浏览了官方网站,但是也没有用。 我得到的错误是:-线程“main”<code>org.openqa.selenium.remote中出现异常。无法访

  • 当我在chrome上使用ipad时,useragent是 Mozila/5.0(iPad;CPU OS 9_3_5像Mac OS X)AppleWebKit/601.1(KHTML像Gecko)CruiOS/57.0.2987.137 Mobile/13G36.... 问题:因为在iPadOS上,Safari上的用户代理与MacOS笔记本上的相同,遵循https://forums.develope

  • 问题内容: 如何使用JavaScript检测Safari浏览器?我在下面尝试过代码,它不仅可以检测Safari,还可以检测Chrome浏览器。 问题答案: 您可以轻松地使用Chrome的索引来过滤掉Chrome:

  • 当我开始录制时,它显示如下错误:jmeter.protocol.http.proxy.Proxy:SSL证书有问题?确保浏览器设置为接受JMeter代理证书:软件导致连接中止: recv失败java.net.SocketException:软件导致连接中止: recv失败

  • 问题内容: 有什么方法可以将WebDriver(Selenium 2)与C#结合使用来最大化浏览器窗口? 问题答案: 将此功能添加到WebDriver时存在一个突出的问题,可以在此处进行跟踪:http : //code.google.com/p/selenium/issues/detail? id=174 一种解决方法是使用以下方法: