Ich versuche, den User-Agent-String außer Kraft zu setzen, konnte aber nicht die Lösung im Internet bisher finden ...Facebook WebDriver: Set User Agent (PHP)
Das ist mein Skript:
<?php
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$capabilities->setPlatform(WebDriverPlatform::WINDOWS);
$capabilities->setCapability('userAgent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36');
$capabilities->setCapability('user-agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36');
$driver = RemoteWebDriver::create($host, $capabilities, 5000);
$driver->get('http://localhost/browser-emu/testpage.php?bot=1234');
// wait until the page is loaded
$driver->wait()->until(
WebDriverExpectedCondition::titleContains('register')
);
echo "User agent: " . $driver->findElement(WebDriverBy::cssSelector('#userAgent'))->getText();
$driver->quit();
die Seite selbst ist so einfach wie:
<html>
<body>
<h1>testpage...</h1>
<?php
printf("<div id='userAgent'>%s</div> \n", $_SERVER['HTTP_USER_AGENT']);
?>
</body>
</html>
es spielt keine Rolle, was ich bereits versucht haben, es immer sagt der User-Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36
ist.
Weiß jemand, wie ich das übersteuern kann?
Ich verwende (auf Ubuntu):
- facebook/WebDriver @ 1.4.1
- chromedriver @ 2.30.477691
Mögliche Duplikat [User-Agent ändern für Selen-Treiber] (https://stackoverflow.com/questions/29916054/change-user-agent-for-selenium-driver) –
sah, aber das funktioniert nicht in PHP oder zumindest weiß ich nicht, welche Klassen instanziiert werden, bis der Treiber instanziiert wird. Wenn ich der Semantik, wie in Python gezeigt, folge, bekomme ich einen 'Aufruf an private FirefoxDriver :: __ construct() von ungültigem Kontext 'Fehler, wenn ich versuche, den Treiber mit dem Profil zu bekommen. – Dennis
Wie vom anderen Post angewiesen, müssen Sie den Benutzer-Agent lediglich als Befehlszeilenargument angeben. Werfen Sie einen Blick auf die API für die Methode: https://facebook.github.io/php-webdriver/latest/Facebook/WebDriver/Chrome/ChromeOptions.html –