2016-08-02 287 views
0

我必須做兩個不同瀏覽器(IE & FF)的應用程序登錄,因此我試圖做跨瀏覽器測試。當URL傳遞給IE時,我得到的鏈接爲「繼續瀏覽本網站不推薦」,而相同的鏈接將不會顯示在FF中。在下面,如果我使用此語句driver.findElement(By.id("overridelink")).click();那麼它在IE中正常工作,但在Firefox中失敗,因爲那裏不會是FF中的任何鏈接。跨瀏覽器測試

請讓我知道一個腳本應該在兩個瀏覽器中運行的可能位置。以下是我正在嘗試的腳本

@Test 
@Parameters("browser") 
public void verifypagetitle(String browsername) { 

    if(browsername.equalsIgnoreCase("IE")) 
    { 
     System.setProperty("webdriver.ie.driver", 
       "D:\\2.53.1\\IEDriverServer.exe"); 
     driver = new InternetExplorerDriver(); 

    } 

    else if (browsername.equalsIgnoreCase("firefox")) 
    { 
     System.setProperty("webdriver.firefox.bin", 
       "C:\\Program Files\\Mozilla Firefox\\firefox.exe"); 
     driver = new FirefoxDriver(); 
    } 
    driver.get("URL"); 
    driver.manage().window().maximize(); 
    driver.findElement(By.id("overridelink")).click(); 
    driver.findElement(By.id("j_username")).sendKeys("userid"); 
    driver.findElement(By.id("j_password")).sendKeys("pwd"); 
    driver.findElement(By.id("j_password")).submit(); 

回答

0

這很可能是由IE安全級別引起的。根據我的經驗,如果我將其更改爲低,警告不存在。你可以試着看看這是否能解決你的問題。

enter image description here

另一種解決方案是,將條件邏輯添加到check the browser被使用。這樣的事情:

Capabilities cap = ((RemoteWebDriver) browserDriver).getCapabilities(); 
String browsername = cap.getBrowserName(); 
// This block to find out if it is IE 
if ("internet explorer".equalsIgnoreCase(browsername)) { 
    driver.findElement(By.id("overridelink")).click(); 
} 
+0

我試過這個,它不適合我。有沒有什麼辦法可以跳過FF中的這個特殊行「driver.findElement(By.id(」overridelink「))。click();」。 – Kumar

+0

是的,看我更新的答案。 – ekostadinov