Selenium - запускайте javascript через navbar с помощью chromedriver - PullRequest
0 голосов
/ 05 февраля 2019

Я пытался вставить javascript в навигационную панель Chrome с помощью Selenium, но безуспешно.

goto = "javascript:gotoText(-884)"<br />
browser.get(goto)

Когда это делается вручную (путем нажатия и записи «javascript: gotoText (-884)» в панель навигации) Отлично работает.Однако селен приносит мне эту ошибку.Есть ли обходной путь?Сама веб-страница не содержит ничего кликабельного, что могло бы привести непосредственно к этой ссылке.

Спасибо за любые предложения!

---------------------------------------------------------------------------
WebDriverException                        Traceback (most recent call last)
<ipython-input-297-41c52a12ba91> in <module>()
----> 1 browser.get(asd)

/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py in get(self, url)
    331         Loads a web page in the current browser session.
    332         """
--> 333         self.execute(Command.GET, {'url': url})
    334 
    335     @property

/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
    319         response = self.command_executor.execute(driver_command, params)
    320         if response:
--> 321             self.error_handler.check_response(response)
    322             response['value'] = self._unwrap_value(
    323                 response.get('value', None))

/anaconda3/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
    240                 alert_text = value['alert'].get('text')
    241             raise exception_class(message, screen, stacktrace, alert_text)
--> 242         raise exception_class(message, screen, stacktrace)
    243 
    244     def _value_or_default(self, obj, key, default):

WebDriverException: Message: unknown error: unsupported protocol
  (Session info: chrome=71.0.3578.98)
  (Driver info: chromedriver=2.45.615355 (d5698f682d8b2742017df6c81e0bd8e6a3063189),platform=Mac OS X 10.13.6 x86_64)

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Как упоминал Моше Славин, вам нужно передать действительный URL, в противном случае вы получите эту ошибку:

WebDriverException: Message: unknown error: unsupported protocol

Если вы хотите передать действительный URL с использованием JavaScript, например,

http://www.google.com

тогда вы можете использовать window.location.replace (), как показано ниже, с JavaScriptExecutor в селене с python, он ведет себя так же, как метод driver.get ():

from selenium import webdriver
driver = webdriver.Chrome('C:\\NotBackedUp\\chromedriver.exe')
driver.execute_script("window.location.replace('http://www.google.com');")

Для получения дополнительной информации перейдите по ссылке ниже:

Способы вставки JavaScript в URL?

0 голосов
/ 05 февраля 2019

Ошибка:

WebDriverException: Сообщение: неизвестная ошибка: неподдерживаемый протокол

Указывает на неправильное использование функции browser.get().

Как вы можете видеть в Документация-Простота использования (Python).

То, что вы пытаетесь сделать, это ввести JavaScript ... (в Python выиспользуйте: execute_script().

Вот пример execute_script():

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'C:\path\To\chromedriver.exe')
driver.get("/10319629/vybrat-element-po-tekstu-v-selenium#10319630")
driver.execute_script("document.getElementsByClassName('comment-user')[0].click()")

Надеюсь, это поможет вам!

...