1

尝试将 Selenium 与 SafariWebDriver 一起使用。使用 jars selenium-server-standalone-2.33.0.jar - 运行 Jetty 服务器

java -jar ./lib/selenium-server-standalone-2.33.0.jar 

selenium-java-2.33.0.jar (我没有使用 Maven 来设置项目 - 只是下载了 jars,并用 javac 编译)

javac -s ./src -cp ./classes:./lib/selenium-java-2.33.0.jar:./lib/selenium-server-standalone-2.33.0.jar ./src/jgf/Selenium2Example.java -d ./classes

编写了一个类,它或多或少是 Selenium2Example 的复制/粘贴,但使用 SafariWebDriver 而不是 FirefoxWebDriver

但是当代码执行时,我在 Safari Web 浏览器中收到消息(使用 Snow Leopard 和 Safari 5.1.9 (6534.59.8))。

无法与 SafariDriver 建立连接

关于如何解决这个问题的任何想法?

顺便说一句:我没有通过注册为 Apple 开发人员使用从源代码编译的带有证书的 Safari 扩展 - 我认为这适用于早期的 jar 版本。

这是代码

package jgf;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
//import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.safari.SafariDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Selenium2Example  {
    public static void main(String[] args) {
        // Create a new instance of the Firefox driver
        // Notice that the remainder of the code relies on the interface, 
        // not the implementation.
       //WebDriver driver = new FirefoxDriver();
       WebDriver driver = new SafariDriver();

        // And now use this to visit Google
        driver.get("http://www.google.com");
        // Alternatively the same thing can be done like this
        // driver.navigate().to("http://www.google.com");

        // Find the text input element by its name
        WebElement element = driver.findElement(By.name("q"));

        // Enter something to search for
        element.sendKeys("Cheese!");

        // Now submit the form. WebDriver will find the form for us from the element
        element.submit();

        // Check the title of the page
        System.out.println("Page title is: " + driver.getTitle());

        // Google's search is rendered dynamically with JavaScript.
        // Wait for the page to load, timeout after 10 seconds
        (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver d) {
                return d.getTitle().toLowerCase().startsWith("cheese!");
            }
        });

        // Should see: "cheese! - Google Search"
        System.out.println("Page title is: " + driver.getTitle());

        //Close the browser
        driver.quit();
    }
}
4

2 回答 2

0

我在 2.34 中遇到了同样的问题,所以我回到 2.31,一切似乎都很好,没有遇到 safari 的“无法建立连接”错误。

于 2013-10-04T19:32:31.650 回答
0

考虑操作系统 Windows。
先决条件:在 Windows 上安装 Safari

  1. 转到http://docs.seleniumhq.org/download/
  2. 向下滚动 -> 转到“SafariDriver”部分并下载“SafariDriver.safariextz”
  3. 双击“SafariDriver.safariextz”(之前下载的)
  4. Safari 会打开一个包含“安装”按钮的弹出窗口 -> 单击安装按钮
  5. 现在转到 Safari 的首选项,您会看到已安装 WebDriver(在我的情况下为 WebDriver 2.48.0)(选中启用 WebDriver 复选框))
  6. 现在是时候实例化 SafariDriver 并获取所需的 URL,如下所示:

    WebDriver driver = new SafariDriver();
    driver.get(" https://www.packtpub.com/web-development/mastering-selenium-testing-tools-video ");

于 2016-04-18T12:57:09.533 回答