Comment se connecter à Chrome sans Tête à l'aide de Sélénium
Je voudrais utiliser chrome sans tête pour le test automatisé à l'aide de sélénium. (https://chromium.googlesource.com/chromium/src/+/lkgr/tête/README.md)
J'ai la version sans tête déjà en cours d'exécution sur 9222. Donc, si j'ouvre http://10.252.100.33:9222/json/I obtenez
[ {
"description": "",
"devtoolsFrontendUrl": "/devtools/inspector.html?ws=127.0.0.1:9223/devtools/page/0261be06-1271-485b-bdff-48e443de7a91",
"id": "0261be06-1271-485b-bdff-48e443de7a91",
"title": "The Chromium Projects",
"type": "page",
"url": "https://www.chromium.org/",
"webSocketDebuggerUrl": "ws://127.0.0.1:9223/devtools/page/0261be06-1271-485b-bdff-48e443de7a91"
} ]
Dans une prochaine étape, je voudrais connecter le sélénium à la tête de chrome. Mais quand j'essaie
final DesiredCapabilities caps = DesiredCapabilities.chrome();
final WebDriver driver = new RemoteWebDriver(new URL("http://localhost:9222/json"), caps);
driver.get("http://www.google.com");
Je fais la suite de déconnexion
Jän 24, 2017 7:14:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFORMATION: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
Jän 24, 2017 7:14:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFORMATION: Falling back to original OSS JSON Wire Protocol.
Jän 24, 2017 7:14:45 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFORMATION: Falling back to straight W3C remote end connection
org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{browserName=chrome, version=, platform=ANY}], required capabilities = Capabilities [{}]
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: 'Geralds-MacBook-Pro.local', ip: '192.168.0.249', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.2', java.version: '1.8.0_111'
Driver info: driver.version: RemoteWebDriver
Questions sont les suivantes:
- Est le RemoteWebDriver le pilote correct pour vous connecter à the headless
chrome? - J'ai lu au sujet de l'outil développeur d'internet explorer (protocolehttps://docs.google.com/presentation/d/1gqK9F4lGAY3TZudAtdcxzMQNEE7PcuQrGu83No3l0lw/), mais je ne sais pas, comment créer un client à l'aide de sélénium.
- Connexion du Chrome sans Tête à l'aide de google Chrome DevTools œuvres (https://developers.google.com/web/tools/chrome-devtools/remote-debugging/) en plus de certains de la segmentation des voûtes 😉
Avez-vous ce travail? Je l'ai fait à un moment, similaires à ce que vous avez fait (j'ai aussi utilisé
Pour obtenir des choses en cours d'exécution, nous nous sommes mis à phantomJS. En utilisant le Sélénium est PhantomJSDriver et la WebWire Protocole, nous avons été en mesure d'utiliser cette configuration. (Onu)heureusement, nous avons à étudier à nouveau, comme la phantomJS responsable est le pied vers le bas/Chrome 59 soutient sans tête. (groups.google.com/forum/#!topic/phantomjs/9aI5d-LDuNE)
RemoteWebDriver
), mais je reviens à mon installation un mois plus tard et ce n'est pas de la connexion..Pour obtenir des choses en cours d'exécution, nous nous sommes mis à phantomJS. En utilisant le Sélénium est PhantomJSDriver et la WebWire Protocole, nous avons été en mesure d'utiliser cette configuration. (Onu)heureusement, nous avons à étudier à nouveau, comme la phantomJS responsable est le pied vers le bas/Chrome 59 soutient sans tête. (groups.google.com/forum/#!topic/phantomjs/9aI5d-LDuNE)
OriginalL'auteur geri-m | 2017-01-24
Vous devez vous connecter pour publier un commentaire.
Je pense que le fichier lisez-moi est un petit peu trompeur. Vous n'avez pas à démarrer chrome lui-même et vous pouvez utiliser le RemoteWebDriver. Assurez-vous que chromedriver est installé (https://sites.google.com/a/chromium.org/chromedriver/home).
./chromedriver
ou./chromedriver --port=9515
)Code devrait ressembler à ceci:
A fonctionné pour moi sur Ubuntu Linux.
an X display is required for keycode conversions, consider using Xvfb
exception!Pour les autres:
$sudo apt-get install xvfb
$xvfb-run /home/nikki/chromedriver --whitelisted-ips
stackoverflow.com/questions/47067188/...
regarde nécessaire? Parce que j'ai couru mes tests sans démarrer chrome pilote et les tests couru headlessly
Non, il n'est pas nécessaire, mais il est recommandé. Sinon vous allez commencer et mettre fin à un processus pour chaque test. Pris de la chomedriver site web: "La ChromeDriver classe commence le ChromeDriver processus de serveur lors de la création et la termine quand arrêter de fumer est appelé. Cela peut gaspiller une quantité importante de temps pour les grandes suites de test où un ChromeDriver instance est créée par test."
OriginalL'auteur hkq
Sinon, si votre exécution locale vous suffit de faire comme cela. En scala.
OriginalL'auteur Stephen
si vous utilisez le sélénium 3+ chrome pilote , vous pouvez tout simplement utiliser les options de chrome et de lancer le pilote. Vérifier les détails dans un projet
Exemple de Projet sur Chrome sans Tête de course avec différentes options
OriginalL'auteur Shantonu
*Utiliser le code suivant:
et vous obtiendrez "Headless" Chrome!
*Code complet
OriginalL'auteur kuo chang
Chrome 59 a la capacité de créer l'instance du décapité . J'ai essayé pour Windows avec chrome pilote 2.30 et il a travaillé pour moi
https://www.automation99.com/2017/07/how-to-use-chrome-headless-using.html?m=1
OriginalL'auteur Anjan Mondal