@lcd1232

Можно ли использовать конструкцию with as на selenium?

Эквивалентен ли это код:
browser = webdriver.Firefox()
browser.get('http://www.google.com')
browser.save_screenshot('screenie.png')
browser.quit()

Этому?
with webdriver.Firefox() as browser:
	browser.get('http://www.google.com')
	browser.save_screenshot('screenie.png')
  • Вопрос задан
  • 257 просмотров
Пригласить эксперта
Ответы на вопрос 2
@abcd0x00
Чтобы определить, можно ли использовать оператор with с объектом obj, нужно просто выполнить obj.__enter__.
Если метод есть, то можно.

Это пример:
>>> f = open('/etc/passwd')
>>> f.__enter__
<built-in method __enter__ of _io.TextIOWrapper object at 0xb750e644>
>>>
Ответ написан
Комментировать
urtow
@urtow
*nix, python, QA, bagpipe, folk music
In [1]: from selenium import webdriver
In [2]: bro = webdriver.Firefox()
In [3]: bro.__enter__
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-4-d8c2812442f0> in <module>()
----> 1 bro.__enter__
AttributeError: 'WebDriver' object has no attribute '__enter__'


Нет, нельзя.

Но, мы можешь сам написать обертку реализующую данный функционал. with .. as использует два магических метода __enter__ и __exit__
Описано вот тут: https://www.python.org/dev/peps/pep-0343/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы