我一直在尝试使用Selenium将javascript插入Chrome导航栏中,但没有成功。
cordova platform remove windows --nosave
手动完成操作(通过单击“ javascript:gotoText(-884)”并将其写入导航栏),它就像一个超级按钮。但是,硒给我带来了这个错误。 有什么解决方法吗?该网页本身没有可直接点击该链接的可点击内容。
谢谢您的任何建议!
goto = "javascript:gotoText(-884)"<br />
browser.get(goto)
答案 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,例如
然后您可以在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');")
有关更多信息,请参见下面的链接: