У меня есть этот HTML, который я получил от W3Schools
<!DOCTYPE html>
<html>
<body>
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
</body>
</html>
И у меня есть код селена, подобный этому, без режима без головы,
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new ChromeDriver();
driver.get("file:///C:/Users/user/Desktop/test.html");
driver.findElement(By.tagName("button")).click();
Thread.sleep(4000);
System.out.println("*******************************");
System.out.println(driver.findElement(By.id("demo")).getText());
System.out.println("*******************************");
}
и вывод:
'*******************************
Latitude: 13.009112499999999
Longitude: 77.7006038
'*******************************
, нокогда я работаю в режиме без головы ,
public static void main(String[] args) throws InterruptedException {
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("headless");
WebDriver driver = new ChromeDriver(chromeOptions);
driver.get("file:///C:/Users/user/Desktop/test.html");
driver.findElement(By.tagName("button")).click();
Thread.sleep(4000);
System.out.println("*******************************");
System.out.println(driver.findElement(By.id("demo")).getText());
System.out.println("*******************************");
}
Вывод:
'********************************
'*******************************
Чего мне не хватает?Мне пришлось использовать только безголовый, и я не могу включить геолокацию в режиме безголового хрома.