Why doesn't HtmlUnitDriver execute JavaScript?

前端 未结 5 1835
滥情空心
滥情空心 2020-12-20 12:00

I got the following problem: I am running a JUnit testCase with Selenium 2.9 using HtmlUnitDriver with Browserversion Firefox_3_6. JavaScript is enabled. Now when it should

相关标签:
5条回答
  • 2020-12-20 12:29

    You can enable JavaScript by doing either

    • new HtmlUnitDriver(true);
    • driver.setJavascriptEnabled(true);

    What you need to do is to wait until the JavaScript is executed after get(url).

    You can use Thread.sleep() method for adding some delay.

    HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);
    driver.setJavascriptEnabled(true);
    driver.get(url);
    
    Thread.sleep(100);
    
    runTest();
    

    Update

    As @Corey indicated in the comments, it could be nicer to use Explicit and Implicit Waits instead of Thread.sleep(). As I don't use them these days, I cannot confirm, though. It would be great if someone test them and update this answer.

    0 讨论(0)
  • 2020-12-20 12:37

    Well, There is an easy way to enable browser capability and javascript, you can do the following:

    Webdriver driver = new HtmlUnitDriver(BrowserVersion.Chrome,true);
    

    True specifies that javascript should be enabled. @Glenn Nelson,

    0 讨论(0)
  • 2020-12-20 12:38

    If you wish to set the BrowserVersion as well as enable Javascript with HtmlUnitDriver, your initialization needs to look like the following (as there is no way to do both via the constructor):

    HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);
    driver.setJavascriptEnabled(true);
    

    This will allow you to use the browser definition of your choice and use Javascript.

    0 讨论(0)
  • 2020-12-20 12:54

    You need to initialize the HtmlUnitDriver with enable javascript true

    new HtmlUnitDriver(true);
    
    0 讨论(0)
  • 2020-12-20 12:54

    You may need to do this:

    WebDriver driver = new HtmlUnitDriver(BrowserVersion.INTERNET_EXPLORER_8);
    ((HtmlUnitDriver) driver).setJavascriptEnabled(true);
    
    0 讨论(0)
提交回复
热议问题