• Selenium Video Tutorials

Selenium WebDriver - Safari 选项



Selenium Webdriver 可用于在 Safari 浏览器上运行自动化测试。某些功能和特性仅适用于 Apple 用户的 Safari。Safari 是一款流行的浏览器,由 Apple 设备默认提供。对于 Safari 浏览器版本 10 及更高版本,safaridriver 会自动安装,无需单独安装。

safari 驱动程序默认安装在操作系统上,而 Firefox 和 Chromium 浏览器则不是这样。我们需要进行一些初始设置,在 Safari 浏览器中启用“开发”菜单,然后才能在其上实际运行测试。默认情况下,“开发”菜单不可见。

Selenium Safari Options 1

为此,我们需要打开 Safari,然后单击“设置”。接下来,我们需要转到“高级”选项卡,并选中“显示 Web 开发人员功能”选项。

Selenium Safari Options 2

要开始在 Safari 浏览器上运行自动化测试,我们需要从终端运行命令:

safaridriver  --enable

示例

让我们以以下页面为例,我们在此启动一个 Safari 驱动程序会话以及 SafariOptions。然后,我们将获取浏览器标题“Selenium Practice - Student Registration Form”和当前 URL Selenium Automation Practice Form

Selenium Safari Options 3

要在 SafariDriver 以及 SafariOptions 类一起使用,我们需要添加导入语句:

import org.openqa.selenium.safari.SafariOptions
import org.openqa.selenium.safari.SafariDriver

代码实现

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.safari.SafariDriver;
import org.openqa.selenium.safari.SafariOptions;
import java.util.concurrent.TimeUnit;

public class SafariOpts {
   public static void main(String[] args) throws InterruptedException {

      // Using the Safari options
      SafariOptions opts = new SafariOptions();
      WebDriver driver = new SafariDriver(opts);

      // adding an implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // opening the Safari browser and launch a URL
      driver.get("https://tutorialspoint.com/selenium/practice/selenium_automation_practice.php");

      // get the page title
      System.out.println("Browser title is: " + driver.getTitle());
      
      // get the current URL
      System.out.println("Current URL is: " + driver.getCurrentUrl());

      // closing the browser
      driver.quit();
   }
}

输出

Browser title is: Selenium Practice - Student Registration Form
Current URL is: 
https://tutorialspoint.com/selenium/practice/selenium_automation_practice.php

Process finished with exit code 0

在上面的示例中,我们使用 SafariOptions 启动了 Safari 浏览器,然后分别获取了浏览器标题和当前 URL,并在控制台中显示消息 - “浏览器标题为:Selenium Practice - Student Registration Form 和当前 URL 为:” Selenium Automation Practice Form

Safari 浏览器始终将日志(如果已启用)存储在以下位置 - ~/Library/Logs/com.apple.WebDriver/。与 Chrome、Firefox 等其他浏览器不同,我们无法选择将日志及其级别分别保存到其他位置和值。

示例 - 捕获 Safari 日志

让我们以一个启用 Safari 日志的示例为例。

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.safari.SafariDriver;
import org.openqa.selenium.safari.SafariDriverService;
import org.openqa.selenium.safari.SafariOptions;
import java.util.concurrent.TimeUnit;

public class SafariOptsLogs {
   public static void main(String[] args) throws InterruptedException {

      // Using the Safari options
      SafariOptions opts = new SafariOptions();
      WebDriver driver = new SafariDriver(opts);

      // adding an implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // opening the Safari browser and launch a URL
      driver.get("https://tutorialspoint.com/selenium/practice/selenium_automation_practice.php");
      
      // enabling the Safari logs
      SafariDriverService service = new SafariDriverService.Builder().withLogging(true).build();

      // get the page title
      System.out.println("Logging enabled: " + service);

      // close the browser
      driver.quit();
   }
}

输出

Logging enabled:
org.openqa.selenium.safari.SafariDriverService@3eeb318f

示例 - 禁用 Safari 日志

让我们以一个禁用 Safari 日志的示例为例。

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.safari.SafariDriver;
import org.openqa.selenium.safari.SafariDriverService;
import org.openqa.selenium.safari.SafariOptions;
import java.util.concurrent.TimeUnit;

public class SafariOptsLogsFalse {
   public static void main(String[] args) throws InterruptedException {

      // Using the Safari options
      SafariOptions opts = new SafariOptions();
      WebDriver driver = new SafariDriver(opts);

      // adding an implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // opening the Safari browser and launch a URL
      driver.get("https://tutorialspoint.com/selenium/practice/selenium_automation_practice.php");

      // disabling the Safari Logs
      SafariDriverService service = new SafariDriverService.Builder()
         .withLogging(false)
         .build();

      // get the page title
      System.out.println("Launched Browser title is: " + driver.getTitle());
      
      // get the current URL
      System.out.println("Current URL is: " + driver.getCurrentUrl());

      // close the browser
      driver.quit();
   }
}

输出

Browser title is: Selenium Practice - Tool Tips
Current URL is: 
https://tutorialspoint.com/selenium/practice/tool-tips.php

结论

本教程全面介绍了 Selenium WebDriver Safari 选项,到此结束。我们从描述 SafariOptions 类开始,并逐步讲解了如何将 SafariOptions 与 Selenium Webdriver 一起使用的示例。这使您深入了解了 Selenium Webdriver 中的 SafariOptions 类。明智的做法是不断练习您学到的知识,并探索与 Selenium 相关的其他内容,以加深您的理解并拓宽您的视野。

广告