2016-08-02 159 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