簡體   English   中英

Selenium Grid 2並行測試用例執行

[英]Selenium Grid 2 parallel Test Case execution

我想使用Selenium Grid進行測試,因為我已經成功啟動了Grid並啟動了HUB和NODE ..我也確實將RemoteWebdriver Capability設置為完美..但是當我嘗試運行測試時,所有瀏覽器都已完美打開但我面臨的問題是某些瀏覽器停止在中間

一些打開網頁並停止
一些進入登錄頁面並停止一些登錄並停止,並給我ERROR作為

  • 找不到元素
  • 無法點擊元素
  • 在緩存中找不到元素

任何人都可以請幫助我...在此先感謝。

我的示例代碼是

public class GmailMail{
  private WebDriver driver;
  private String baseUrl;
  private boolean acceptNextAlert = true;
  private StringBuffer verificationErrors = new StringBuffer();

  @BeforeClass
public void setup(String browser) throws InterruptedException, IOException {
    DesiredCapabilities capability=null;

    if(browser.equalsIgnoreCase("googlechrome")){ 

        /*ChromeDriverService chromeDriverService = new ChromeDriverService.Builder()
        .usingDriverExecutable(
                new File("D:\\downloaded setup\\zip file\\chromedriver_win_26.0.1383.0\\chromedriver.exe"))
        .usingAnyFreePort().build();
chromeDriverService.start();
driver = new ChromeDriver(chromeDriverService);*/

  System.out.println("googlechrome"); 
  capability= DesiredCapabilities.chrome(); 
  capability.setBrowserName("chrome"); 
  capability.setPlatform(org.openqa.selenium.Platform.WINDOWS); 
  //capability.setVersion(""); 

  System.setProperty("webdriver.chrome.driver",
        "D:\\downloaded setup\\zip file\\chromedriver_win_26.0.1383.0\\chromedriver.exe");
        driver = new ChromeDriver();
    }

    if(browser.equalsIgnoreCase("firefox")){
        System.out.println("firefox");
        capability= DesiredCapabilities.firefox();
        capability.setBrowserName("firefox"); 
        capability.setPlatform(org.openqa.selenium.Platform.ANY);
        //capability.setVersion("");
    }

    if(browser.equalsIgnoreCase("iexplore")){
        System.out.println("iexplore");
        capability= DesiredCapabilities.internetExplorer();
        capability.setBrowserName("iexplore"); 
        capability.setPlatform(org.openqa.selenium.Platform.WINDOWS);
        //capability.setVersion("");*/
        System.setProperty("webdriver.ie.driver", "D:\\downloaded setup\\zip file\\IEDriverServer_Win32_2.29.0\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();
    }

    driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
    driver.navigate().to(baseUrl);
    long ss = Thread.currentThread().getId();
    System.out.println("ss: "+ss);

}


  @Test
  public void testUntitled() throws Exception {
    driver.get(baseUrl + "/ServiceLogin?service=mail&passive=true&rm=false&continue=http://mail.google.com/mail/&scc=1&ltmpl=default&ltmplcache=2");
    driver.findElement(By.id("Email")).clear();
    driver.findElement(By.id("Email")).sendKeys("YourUserName");
    driver.findElement(By.id("Passwd")).clear();
    driver.findElement(By.id("Passwd")).sendKeys("YourPassowrd");
    driver.findElement(By.id("signIn")).click();

  }

  @AfterClass
  public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
      fail(verificationErrorString);
    }
  }

  private boolean isElementPresent(By by) {
    try {
      driver.findElement(by);
      return true;
    } catch (NoSuchElementException e) {
      return false;
    }
  }

  private String closeAlertAndGetItsText() {
    try {
      Alert alert = driver.switchTo().alert();
      if (acceptNextAlert) {
        alert.accept();
      } else {
        alert.dismiss();
      }
      return alert.getText();
    } finally {
      acceptNextAlert = true;
    }
  }
}

而我的Testng.xml是

<suite name="Same TestCases on Different Browser" verbose="3"  parallel="tests" thread-count="2">   
  <test name="Run on Internet Explorer">
    <parameter name="browser"  value="firefox"/>
    <classes>
      <class name="TestPAck1.GmailMail"/>
    </classes>
 </test>  
  <test name="Run on Internet Explorer1">
    <classes>
    <parameter name="browser"  value="googlechrome"/>
      <class name="TestPAck1.GmailMail"/>
    </classes>
 </test>

 </suite>

乍一看,這似乎是一個同步問題。 如果您可以共享代碼的適當部分,則可能更容易確定問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM