а в обычном хроме проходит тест?
Да, в обычном проходил без лишних манипуляций: без клика и без повторного поиска элемента.
cenzor еще не добавил друзей
14 ноября 2017 - 00:23
а в обычном хроме проходит тест?
Да, в обычном проходил без лишних манипуляций: без клика и без повторного поиска элемента.
14 ноября 2017 - 00:22
У вас перед заполнением поля - обновление страницы не происходит, случайно?
Нет.
Всем спасибо. Проблема решена.
Получилось вот таким способом:
comment = driver.find_elements_by_xpath("//textarea[@placeholder = 'some text']") comment[0].click() comment = driver.find_elements_by_xpath("//textarea[@placeholder = 'some text']") comment[0].send_keys('bla bla bla...')
13 ноября 2017 - 09:27
10 ноября 2017 - 11:46
Тут пишут что надо без --
https://intoli.com/b...eadless-chrome/
оставьте пока только disable-gpu и headless, если заработает.ю то добавьте установку размера окна.
options.setBinary("/path/to/other/chrome/binary") - нужно для указания места хрома, если он установлен в нестандартное место (вам это не надо).
и вы не указали какой версии вы используете Селениум.
и вижу что вы хромдрайвер очень старый используете, скорее всего в нём проблема.
Selenium 3.7.0
ChromeDriver (v2.9.248304), поставил новый - 2.33. Запускает!
Спасибо большое!!!
10 ноября 2017 - 03:56
А вы попробуйте взять html открытой страницы в PhantomJS и посмотреть есть ли там этот элемент.
Браузеры могут отрабатывать по разному, особенно такие старые. Используйте Chrome headless.
Спасибо.
Действительно, в page_source нет данного элемента, в PhantomJS страница по-другому представлена.
Что бы в будущем не было похожих проблем, я обратил внимание на Chrome headless, который вы указали.
Я установил google-chrome-stable, в код добавил:
options = webdriver.ChromeOptions() options.add_argument('--headless') driver = webdriver.Chrome(chrome_options=options)
При запуске открывается Chrome с такой надписью и ничего не происходит:
(не получается вставить изображение, см. прикреплённый скриншот)
Trace:
Traceback (most recent call last): File "/usr/local/lib/python3.4/dist-packages/telebot/util.py", line 58, in run task(*args, **kwargs) File "instabot.py", line 63, in instagram_com driver.get("https://www.instagram.com") File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/webdriver.py", line 320, in get self.execute(Command.GET, {'url': url}) File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/webdriver.py", line 308, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"29592.1","isDefault":true},"id":1,"name":"","origin":"://"} (Session info: chrome=62.0.3202.89) (Driver info: chromedriver=2.9.248304,platform=Linux 3.16.0-4-amd64 x86_64)
я даже пробовал с такими аргументами:
options = webdriver.ChromeOptions() options.add_argument('window-size=1200x600') options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument('--ignore-certificate-errors') options.add_argument('--disable-web-security') driver = webdriver.Chrome(chrome_options=options)
результат тот же.
Хотел бы заметить, что в некоторых источниках аргументы указываются без двойного тире, а где-то с двойным тире, как правильно?
Ещё иногда встречается вот такая опция:
options.setBinary("/path/to/other/chrome/binary")
Для чего она нужна?
Community Forum Software by IP.Board Русификация от IBResource
Лицензия зарегистрирована на: Software-Testing.Ru