Reputation: 49
I am just trying to run this using headless browser i don't understand why it keeps throwing me the error even if i have provided argument. Here i have read that it requires argument to pass in options.add_argument() :- https://seleniumhq.github.io/selenium/docs/api/py/webdriver_firefox/selenium.webdriver.firefox.options.html#module-selenium.webdriver.firefox.options
Error :- TypeError: add_argument() missing 1 required positional argument: 'argument'
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options.add_argument('-headless')
browser = webdriver.Firefox(options)
browser.get('https://intoli.com/blog/email-spy/')
browser.implicitly_wait(50)
heading = browser.find_element_by_xpath('//*[@id="heading-breadcrumb"]/div/div/div/h1').text
print(heading)
browser.close()
Upvotes: 0
Views: 690
Reputation: 11631
You should create an object Options before calling the property on it. For more informations about how @property works, see this answer.
# create a new object
options = Options()
# calling the property (setter)
options.add_argument('-headless')
Update : Furthermore, it seems that there are other problems with your code sample. If you want to provide only firefox_options, you should do it as a keyword argument, so you must provide it explicitly:
browser = webdriver.Firefox(firefox_options=options)
Upvotes: 2