python 2.7 - Why is add_experimental_option used in Selenium? -


i trying understand code snippet quite similar following :

from selenium.webdriver.chrome.options import options chrome_options = options() port_number = "127.0.0.1.8888" chrome_options.add_experimental_option("someaddressname", port_number) 

i tried looking explanation haven't got satisfactory answer until now. can please explain task of options() , add_experimental_option in particular?

thank you

the way webdriver implementations accept configuration information browsers try automate via concept called "capabilities." when starting session (launching browser), user specifies capabilities want launched driver support. might include things ability accept self-signed ssl certificates, profile settings browser, or number of other things.

one of challenges model, however, is implemented dictionary, key-value pairs consisting of keys arbitrary strings , values objects of arbitrary type. there 2 potential problems here. first capability names easy forget or mistype, , may not supported browsers. moreover, it's impossible know before code executed. values, usually, driver expects value associated name supports of specific type, , again, can differ between driver implementations.

enter options classes. these constructs provide setters various capabilities particular driver might expect. can enforce name passed driver via capabilities dictionary correct, , can enforce type-safety on values. however, driver implementations (the chromium project's chromedriver, mozilla's geckodriver, microsoft's microsoftwebdriver edge browser, etc.) not built or maintained selenium project. may case driver provider releases new driver version understands new capability selenium project hasn't had time create type-safe setter in driver's options class.

so users aren't blocked using new capability until next version of selenium released, options classes have "add additional option there not yet type-safe setter" method. in python, sample looks written in, method called add_experimental_option. method intended used temporarily until selenium project can push new release includes type-safe setter whatever new option driver implementor (chrome driver, in example) has added.


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -