2
votes

Framework de robot WebDriverException: Message: erreur inconnue: Chrome n'a pas pu démarrer:

J'observe l'erreur ci-dessous lorsque j'exécute un cas de test ouvert de navigateur Chrome à l'aide du framework robot.

WebDriverException: Message: erreur inconnue: Chrome n'a pas pu démarrer: sorti anormalement

(erreur inconnue: le fichier DevToolsActivePort n'existe pas)

(Le processus démarré à partir de l'emplacement chrome / usr / bin / google-chrome est ne fonctionne plus, donc ChromeDriver suppose que Chrome a s'est écrasé.) (Informations sur le pilote: chromedriver = 72.0.3626.69 (3c16f8a135abc0d4da2dff33804db79b849a7c38), plateforme = Linux 4.4.0-31-x86_64 générique)

a collé le script du robot ci-dessous:

*** settings ***

Library  Selenium2Library


*** Variables ***

${Browser}  Chrome
${URL}  https://www.google.com

*** Test Cases ***
TC001 Browser Start and Close
    Open Browser  ${URL}  ${Browser}

versions de chrome utilisées:

  • Chrome version 72
  • ChromeDriver 72.0.3626.69


0 commentaires

4 Réponses :


0
votes

Vous devez également mettre à jour Selenium, ce que vous obtiendrez si vous utilisez la dernière version de SeleniumLibrary (le «2» a été supprimé du nom).

Mettez à jour vos scripts pour le nouveau nom et mettez à jour avec:

pip install -U robotframework-seleniumlibrary


0 commentaires


1
votes

Je l'ai résolu! en utilisant --no-sandbox

Open Browser    about:blank    headlesschrome
Open Browser    about:blank    chrome

au lieu de

${chrome_options}=  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys, selenium.webdriver
Call Method    ${chrome_options}    add_argument    test-type
Call Method    ${chrome_options}    add_argument    --disable-extensions
Call Method    ${chrome_options}    add_argument    --headless
Call Method    ${chrome_options}    add_argument    --disable-gpu
Call Method    ${chrome_options}    add_argument    --no-sandbox
Create Webdriver    Chrome    chrome_options=${chrome_options}


1 commentaires

OMG cela a fonctionné pour moi. Ma situation est que nous avons un pipeline qui utilise une image ubuntu et un framework de robot en cours d'exécution. Sur mon mac local, cela fonctionne simplement en utilisant Open Browser, mais pas sur l'image ubuntu à l'aide de docker. Dans tous les cas, ça marche maintenant. J'ai essayé quelques autres options, mais celle-ci était la seule qui fonctionnait. Merci!



0
votes

Voici une approche qui a fonctionné pour moi. Nous devons passer le chemin du pilote web chrome_options et chrome lors de l'ouverture du navigateur. Veuillez trouver le code ci-dessous.

*** Settings ***
Library           Selenium2Library

*** Variables ***
${URL}            https://www.google.com
${CHROMEDRIVER_PATH}        /usr/local/bin/chromedriver

*** Keywords ***
Open Website
    ${chrome_options}=  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys, selenium.webdriver
    Call Method    ${chrome_options}    add_argument    --no-sandbox
    Call Method    ${chrome_options}    add_argument    --headless
    Open Browser    ${URl}    chrome    options=${chrome_options}      executable_path=${CHROMEDRIVER_PATH}

*** Settings ***
Suite Setup       Open Website

REMARQUE: Les options_chrome et le chemin_exécutable ont été transmis directement à Ouvrir le navigateur em > commande au lieu de créer un pilote Web (parce que, pour une raison quelconque, créer un pilote Web ne fonctionnait pas pour moi. Mais passer des arguments directement au navigateur a fonctionné)


0 commentaires