Как запустить автономный сервер Selenium из сценария PHP?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как запустить автономный сервер Selenium из сценария PHP?

Сообщение Anonymous »

В моем скрипте PHP я использую библиотеку PHP-Webdriver с Edge WebDriver, чтобы получить данные с веб-страницы, и мне нужно запустить автономный сервер Selenium из сценария. I copied selenium-server-4.35.0.jar, msedgedriver.exe and NodeWebDriver.json to the current user directory C:\Users\pnfst, and also created 2 bat files for running hab and for running node: selenium-server-hub.bat and selenium-server-node.bat respectively.

nodewebdriver.json
{
"capabilities": [
{
"browserName": "MicrosoftEdge",
"maxInstances": 5,
"seleniumProtocol": "WebDriver",
"platform": "WINDOWS"
},
{
"browserName": "firefox",
"maxInstances": 5,
"seleniumProtocol": "WebDriver",
"platform": "WINDOWS"
},
{
"browserName": "chrome",
"maxInstances": 5,
"seleniumProtocol": "WebDriver",
"platform": "WINDOWS"
},
{
"browserName": "internet explorer",
"maxInstances": 1,
"seleniumProtocol": "WebDriver",
"platform": "WINDOWS"
}
],
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 5,
"port": 5555,
"register": true,
"registerCycle": 5000,
"hub": "http://Администратор:7565@127.0.0.1:4444",
"nodeStatusCheckTimeout": 5000,
"nodePolling": 5000,
"role": "node",
"unregisterIfStillDownAfter": 60000,
"downPollingLimit": 2,
"debug": false,
"servlets": [],
"withoutServlets": [],
"custom": {}
}

selenium-server-hub.bat
java -Dwebdriver.edge.driver=msedgedriver.exe -jar ".\selenium-server-4.35.0.jar" hub

написанного значения-server-node.bat>java -Dwebdriver.edge.driver=msedgedriver.exe -jar ".\selenium-server-4.35.0.jar" node --config ".\NodeWebDriver.json"
< /code>
Затем я попытался запустить автономный сервер Selenium с PHP, используя EXEC следующим образом.

вариант 1 < /em> < /p>
$hubCommand = 'C:\\Program Files\\Java\\jdk-24\\bin\\java.exe -jar "C:\\Users\\pnfst\\selenium-server-4.35.0.jar" hub 2>&1 &';
$nodeCommand = 'C:\\Program Files\\Java\\jdk-24\\bin\\java.exe -Dwebdriver.edge.driver=C:\\Users\\pnfst\\msedgedriver.exe -jar "C:\\Users\\pnfst\\selenium-server-4.35.0.jar" node --config "C:\\Users\\pnfst\\NodeWebDriver.json" 2>&1 &';
$hubResult = exec($hubCommand, $hubOutput, $hubResult_code); // start hab
$nodeResult = exec($nodeCommand, $nodeOutput, $nodeResult_code); // start node

variant 2
$psHubCommand = 'Start-Process -FilePath "C:\\Program Files\\Java\\jdk-24\\bin\\java.exe" -ArgumentList "-jar", "selenium-server-4.35.0.jar", "hub" -WorkingDirectory "C:\\Users\\pnfst" -Verb RunAs';
$psNodeCommand = 'Start-Process -FilePath "C:\\Program Files\\Java\\jdk-24\\bin\\java.exe" -ArgumentList "-Dwebdriver.edge.driver=msedgedriver.exe", "-jar", "selenium-server-4.35.0.jar", "node", "--config", ".\\NodeWebDriver.json" -WorkingDirectory "C:\\Users\\pnfst" -Verb RunAs';
$hubCommand = "powershell.exe -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command " . escapeshellarg($psHubCommand) . " 2>&1 &";
$nodeCommand = "powershell.exe -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command " . escapeshellarg($psNodeCommand) . " 2>&1 &";
$hubResult = exec($hubCommand, $hubOutput, $hubResult_code); // start hab
$nodeResult = exec($nodeCommand, $nodeOutput, $nodeResult_code); // start node

variant 3
$psHubCommand = 'Start-Process -FilePath "C:\\Windows\\system32\\cmd.exe" -ArgumentList "/c", "C:\\Users\\pnfst\\selenium-server-hub.bat" -WorkingDirectory "C:\\Users\\pnfst" -Verb RunAs';
$psNodeCommand = 'Start-Process -FilePath "C:\\Windows\\system32\\cmd.exe" -ArgumentList "/c", "C:\\Users\\pnfst\\selenium-server-node.bat" -WorkingDirectory "C:\\Users\\pnfst" -Verb RunAs';
$hubCommand = "powershell.exe -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command " . escapeshellarg($psHubCommand) . " 2>&1 &";
$nodeCommand = "powershell.exe -NonInteractive -NoProfile -ExecutionPolicy Bypass -Command " . escapeshellarg($psNodeCommand) . " 2>&1 &";
$hubResult = exec($hubCommand, $hubOutput, $hubResult_code); // start hab
$nodeResult = exec($nodeCommand, $nodeOutput, $nodeResult_code); // start node
< /code>
Все варианты возвращают код результата 0 и не запускайте HAB и Node. Вариант 2 броски во время исключения PowerShell MissingArgument (Command Hub) и LocationParametRometROWNTFound (команда узла).
Как правильно запустить автономный сервер селена из PHP? < /P>
Решанный C: \ inetpub \ wwwroot \ medservices \ wwwroot и скопировал все необходимые файлы там: selenium-server-4.35.0.jar, msedgedriver.exe, nodewebdriver.json, selenium-server-hub.bat и selenium-server-node.bat. Я также внес следующие изменения в сценарии PHP и файлы BAT.chcp 65001
chdir C:\inetpub\wwwroot\medservices\wwwroot\selenium\server
"C:\Program Files\Java\jdk-24\bin\java.exe" -jar "selenium-server-4.35.0.jar" hub

написанного значения-server-node.bat>chcp 65001
chdir C:\inetpub\wwwroot\medservices\wwwroot\selenium\server
"C:\Program Files\Java\jdk-24\bin\java.exe" -Dwebdriver.edge.driver=msedgedriver.exe -jar "selenium-server-4.35.0.jar" node --config "NodeWebDriver.json"

php script, который запускает сервер Selenium



Подробнее здесь: https://stackoverflow.com/questions/797 ... php-script
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»