2015-06-28 109 views
0

由於幾天我嘗試使用Selenium框架。我有2個問題與此框架。HtmlUnitDriver獲得移動版(硒框架)

  • 在少數情況下,我有以下錯誤:

:「org.openqa.selenium.ElementNotVisibleException你可能只對可見元素交互」但是我的元素是完全可見的,我只有一個元素與此頁面上的這個名字。當我改變瀏覽器版本這個錯誤可以避免,但它是如此討厭...

  • 在少數情況下,我得到的網站的移動版本,我沒有找到任何解決方案。我怎樣才能避免這種情況?

這裏是在twitter上我的代碼示例:

public static void main(String[] args) { 

      HtmlUnitDriver htmlUnit = new HtmlUnitDriver(DesiredCapabilities.firefox()); 

      WebDriver driver = htmlUnit; 

      goToTwitter(driver); 

     } 

public static void goToTwitter(WebDriver driver){ 

     driver.get("http://www.twitter.fr/login"); 

     // Find the text input element by its name 
     WebElement element = driver.findElement(By.name("session[username_or_email]")); 
     WebElement element2 = driver.findElement(By.name("session[password]")); 

     // Enter something to search for 
     element.sendKeys("****"); 
     element2.sendKeys("****"); 
     // 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()); 
     System.out.println("Page title is: " + driver.getCurrentUrl()); 
    } 

GetCurrentUrl回報 「mobile.twitter.com」,我需要這個網站的桌面版本。

所以我的問題是我們如何可以強制將網站與此框架返回桌面版本?

回答

0

我解決了這個問題激活兩種形式的JavaScript,在與methot setJavascriptEnabled(true)的硒;並在創建newWebClient的時候,直接在html中設置javascript單元

public HtmlUnitCustomizedWebDriver(BrowserVersion browser) { 
    super(browser); 
    this.setJavascriptEnabled(true);//this line 

} 
.... 
@Override 
protected WebClient newWebClient(BrowserVersion version) { 
    WebClient webClient = new WebClient(version); 
    webClient.getCookieManager().setCookiesEnabled(true); 
    webClient.getOptions().setTimeout(60000); 
    webClient.getOptions().setCssEnabled(false); 
    webClient.getOptions().setJavaScriptEnabled(true);//this line 
    webClient.getOptions().setUseInsecureSSL(true); 
    webClient.getOptions().setPopupBlockerEnabled(false); 

    return webClient; 
} 
+0

這樣,我擴展HtmlUnitDriver –