2

Java & TestNG フレームワークで Selenium WebDriver を使用しています。クロスブラウザー テストを行うために、一度に 1 つのコードで Firefox、IE、Chrome を使用したいと考えています。Firefoxを次のようにしか初期化できません

driver = new FirefoxDriver();

ただし、他のブラウザを同じ方法で初期化することはできません。例えば:

driver = new InternetExplorerDriver();

エラーを与えるInternetExplorerDriver cannot be resolved.

driver = new ChromeDriver();

エラーを与えるChromeDriver cannot be resolved.

IE と Chrome を初期化し、必要なすべてのブラウザでテストを実行するにはどうすればよいですか?

4

4 に答える 4

4

C# の場合

追加

using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;

ブラウザ名を含む構成ファイルを作成します。構成ファイルと対話するためのメソッドを実装する

また、ブラウザを初期化するために以下のコードを使用できます。

string browser = GetConfigProperty("browser"); //Get browser name from the config
        switch (browser)
        {
            case "chrome":
                driver = new ChromeDriver();
                break;
            case "firefox":
                driver = new FirefoxDriver();
                break;
            case "InternetExplorer":
                driver = new InternetExplorerDriver();
                break;
        }

幸運を!

于 2012-08-06T06:35:52.710 に答える
1

次の内容を持つ testng.xml を作成します。

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Regression Test" verbose="1">  
    <test name="Login_IE">
    <parameter name="browser" value="iexplore"/>
        <classes>
            <class name="com.gb.test.selenium.login.Login" />
        </classes>
    </test>
    <test name="Login_FF">
    <parameter name="browser" value="firefox"></parameter>
    <classes>
    <class name="com.gb.test.selenium.login.Login" />
    </classes>
    </test>
<test name="Login_Chrome">
    <parameter name="browser" value="chrome"></parameter>
    <classes>
    <class name="com.gb.test.selenium.login.Login" />
    </classes>
    </test>
</suite>

Java WebDriver コードを次のように記述します。

@Parameters({"browser"})
  @BeforeClass
  public void setUp(String browser) {//throws MalformedURLException{
      if(browser.equalsIgnoreCase("iexplore")){
          File file = new File("E:\\IEDriverServer_Win32_2.29.1\\IEDriverServer.exe");
          System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
          driver = new InternetExplorerDriver();

      }
      if(browser.equalsIgnoreCase("firefox")){
          driver = new FirefoxDriver();
      }
      if(browser.equalsIgnoreCase("chrome")){
          File file = new File("F:\\chromedriver_win_22_0_1203_0b\\chromedriver.exe");//v22
        System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
        driver = new ChromeDriver();
      }

      jse = (JavascriptExecutor) driver;
      driver.manage().window().maximize();
      driver.manage().timeouts().implicitlyWait(DEFAULT_IMPLICIT_WAIT_IN_SECONDS, TimeUnit.SECONDS);
          driver.get("URLOfSite");
  }
于 2013-04-03T09:08:22.383 に答える
1

Ruby の場合、1 つのコードを 3 つのブラウザーすべてで次々に実行する場合は、次のようにします。

def all_browsers
  browsers = [:firefox,:ie,:chrome].each do |br|
  $driver = Selenium::WebDriver.for br
  $driver.manage.window.maximize
  $driver.navigate.to("http://google.com")
end
于 2014-02-28T11:55:36.877 に答える
0

Java については、投稿者の質問が Java の回答を求めていたので、完全なマルチブラウザーの並列ウィンドウの例を書きました

于 2013-07-05T20:29:48.070 に答える