Firefox profile preferences vs Chrome options vs IE desired capabilities

前端 未结 1 458
独厮守ぢ
独厮守ぢ 2021-02-06 05:12

I\'ve seen (and actually answered) several selenium-specific questions where there is a need to set some particular browser preference to change it\'s behavior, for example:

1条回答
  •  滥情空心
    2021-02-06 05:28

    To highlight what I mean will crunch down Wikipedia article to 1 sentence :

    Selenium WebDriver ... is implemented through a browser-specific browser driver, which ... aims to provide a basic set of building blocks from which developers can create their own Domain Specific Language.

    What is a preferred and most efficient strategy to find browser-specific solutions for a particular problem?

    Rather try to think it this way: If particular browser implements a feature then there is a good chance that selenium driver exposes it. You know if feature is implemented if you can solve it manually.

    I decently effective problem solving algorithm for you: CS || RTM || UTSL

    1. [CS] Can you solve problem manually? Try to use same steps.
    2. [RTM] Can you find the manual or example? Chances are that others have solved you problem.
    3. [UTSL] If common sense and RTM did not work, then
      • Manual can tell you how stuff should work.
      • Source can tell you how stuff does work.

    enter image description here Image is from Jeff Atwood blog post.

    Is there a mapping between preferences across major browsers?

    No, preferences are not consolidated across drivers. Drivers have their specifics and tradeoffs.

    Different browsers or even browser versions support different sets of capabilities. Some of them lack even common things. Some of those features are covered by selenium in order for it to provide basic functionality that it has. Example of this would be older IE does not support xPath and Selenium has to simulate this behavior. You can not make assumption it adds behavior to take account for every quirk in every browser to create a common platform (that would be a wicked problem).

    I suggest you read Wicked problem : Strategies to tackle wicked problems.

    Knowing how to disable cache in Firefox, how can I know how to do the same in ...?

    To do same in chrome you could run chrome driver with --disable-application-cache argument. To see what flags your current Chrome can set you can browse to chrome://flags/ inside chrome. Alternative way would be to look up available source.

    Alternative name for IE would be mother lode of quirks. This is where you need to do research. One way would be to call RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess nr

    Where nr is flag field:

    • 255 (Deletes ALL History)
    • 1 (Deletes History Only)
    • 2 (Deletes Cookies Only)
    • 8 (Deletes Temporary Internet Files Only)
    • 16 (Deletes Form Data Only)
    • 32 (Deletes Password History Only)

    This source claims that as of May 2013 IE might have desiredCapabilities.ensureCleanSession to clear cache, however I have not tested it.

    0 讨论(0)
提交回复
热议问题