我对此很陌生。我会尽量解释清楚一切,如果我说了一些无关紧要的话,我提前表示抱歉
我正在尝试让 Selenium 在 Linux 服务器中工作,所以这只是命令。
一切都已安装完毕(Chrome - chromedriver - python - selenium)
我要测试的示例代码:
import time
from selenium import webdriver
driver = webdriver.Chrome()
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
因此,我执行了 ls -l goo*
lrwxrwxrwx. 1 root root 31 Nov 29 03:29 google-chrome -> /etc/alternatives/google-chrome
lrwxrwxrwx. 1 root root 32 Nov 28 05:54 google-chrome-stable -> /opt/google/chrome/google-chrome
由于某种原因(如果有人能向我解释的话)google-chrome 会出现->
chromdriver 正在本地主机上运行
port 9515
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
我不知道我做错了什么
有什么帮助吗?
答案1
在使用 Selenium 执行自动化测试时,如果您的测试代码或测试脚本与尚未加载到文档对象模型 (DOM) 中的 Web 元素交互,则可能会导致错误结果。或者如果它位于另一个未聚焦的 iFrame、选项卡或窗口上,或者任何此类场景。这些类型的意外错误结果称为 Selenium 焦点问题。Selenium 只能在浏览器窗口聚焦时控制浏览器。如何确保 Selenium 测试代码与聚焦的 Web 元素交互?您可以使用一些解决方法,例如增加最短延迟(以秒为单位)以确保执行测试的元素已加载。不过,该解决方案并非万无一失,因为网页设计的任何更改都可能使测试效率低下。我从 Gayatri mishra 那里学到了 Selenium,她提供有关 Selenium 和其他软件编程课程的在线课程,这对初学者来说很棒。
答案2
我遇到过类似的未知错误:DevToolsActivePort,是由从 ubuntu snap 运行的 chromium-browser 引起的。
如果是这种情况,请从 apt 中删除并安装官方 ubuntu。
sudo snap remove chromium-browser
sudo apt install chromium-browser