硒-使用chromedriver通过导航栏运行javascript

时间:2019-02-05 16:44:39

标签: python selenium web-scraping selenium-chromedriver

我一直在尝试使用Selenium将javascript插入Chrome导航栏中,但没有成功。

cordova platform remove windows --nosave

手动完成操作(通过单击“ javascript:gotoText(-884)”并将其写入导航栏),它就像一个超级按钮。但是,硒给我带来了这个错误。 有什么解决方法吗?该网页本身没有可直接点击该链接的可点击内容。

谢谢您的任何建议!

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

2 个答案:

答案 0 :(得分:1)

错误:

  

WebDriverException:消息:未知错误:不支持的协议

表明您使用的browser.get()函数错误。

如您在documentation-simple-usage(Python)中所见。

您要执行的操作是inject JavaScript ...(在Python中,您使用:execute_script()

以下是execute_script()的示例:

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'C:\path\To\chromedriver.exe')
driver.get("https://stackoverflow.com/questions/54132715/select-element-by-text-in-selenium/54132762#54132762")
driver.execute_script("document.getElementsByClassName('comment-user')[0].click()")

希望这对您有帮助!

答案 1 :(得分:1)

就像Moshe Slavin提到的那样,您需要传递有效的URL,否则您将收到此错误:

WebDriverException: Message: unknown error: unsupported protocol

如果您想使用JavaScript传递一些有效的URL,例如

  

http://www.google.com

然后您可以在python的硒中将window.location.replace()与JavaScriptExecutor一起使用,其行为与driver.get()方法相同:

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

有关更多信息,请参见下面的链接:

Ways to insert javascript into URL?