我有这个脚本:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("--remote-debugging-port=9222")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://python.org")
print(driver.title)
driver.close()
当从shell调用时,它返回python的标题。org.
但是当我从PHP调用它时
$result = exec("/usr/bin/python3 " . app_path() . "/webCrawler/test.py 2>&1", $return, $code);
print_r($result);
print_r($code);
print_r($return);
它返回下面的错误,我已经到处找过了,到目前为止没有任何工作,任何想法是怎么回事。?
selenium.common.exceptions.WebDriverException:错误信息:Chrome启动失败:异常退出。(chrome无法访问)(从chrome location /snap/bin/chrome启动的进程不再运行,因此ChromeDriver假设Chrome已崩溃。)
我试过改变chromedriver,我试过在脚本中添加更多的调试,但没有运气。
1条答案
按热度按时间bq3bfh9z1#
我弄明白了,selenium在从php调用时运行的snap版本与php使用的版本不一样,或者可能是在错误的路径中,所以我只是在selenium中添加了snap chromedriver的路径,这就起作用了。