Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将Chrome浏览器搜索结果区域设置为特定国家/地区?_Java_Selenium_Google Chrome_Selenium Chromedriver - Fatal编程技术网

Java 如何将Chrome浏览器搜索结果区域设置为特定国家/地区?

Java 如何将Chrome浏览器搜索结果区域设置为特定国家/地区?,java,selenium,google-chrome,selenium-chromedriver,Java,Selenium,Google Chrome,Selenium Chromedriver,我看到了很多关于设置浏览器语言的问题。但在启动chromedriver时,有没有办法将浏览器的搜索结果区域设置为特定的国家/地区 我不知道从哪里开始-所以我尝试设置浏览器的语言(通过下面的代码),但这并不能解决我的问题 System.setProperty(“webdriver.chrome.driver”,”D:/DollarArchive/chromedriver.exe”); ChromeOptions options = new ChromeOptions(); options.addA

我看到了很多关于设置浏览器语言的问题。但在启动chromedriver时,有没有办法将浏览器的搜索结果区域设置为特定的国家/地区

我不知道从哪里开始-所以我尝试设置浏览器的语言(通过下面的代码),但这并不能解决我的问题

System.setProperty(“webdriver.chrome.driver”,”D:/DollarArchive/chromedriver.exe”);
ChromeOptions options = new ChromeOptions();
options.addArguments(“–lang= sl”);
ChromeDriver driver = new ChromeDriver(options);
driver.get(“http://google.com");
我需要知道在初始化ChromeDriver时设置区域的方法。手动完成后->谷歌->设置->搜索设置->地区设置->选择所需国家并保存。(如下图所示)

但我不想通过UI来完成这个过程。因此,我想通过
ChromeOptions
找出是否有一种方法可以做到这一点。有什么想法吗?

两种方法

最简单的方法是将要搜索的国家添加到搜索字段中。。。。 嘿,我说这很简单

有趣的方式并不简单。。。谷歌通常使用你的ip地址来确定你的位置,这就是它给你提供广告的方式。。。以及它为您提供的任何“本地”数据。如果你有一个德国ip地址,你更有可能得到一份完整的德国物品清单。。。你也可以将语言保留为英语,让谷歌翻译帮你完成任务


如果您找到一种简单的方法,通过web请求发送假ip,并获得返回给您的结果,那么我想知道,这样我就可以停止支付VPN的费用了。实际上,您可以为浏览器驱动程序实例设置代理,以获取所需区域的搜索结果。例如,如果我想要特定地区(如印度尼西亚)的搜索结果,我将为驱动程序实例设置印度尼西亚特定的代理,如下所示。您可以在此处找到世界其他地区的免费代理列表:

设置代理的示例代码段如下所示:

    System.setProperty("webdriver.gecko.driver", "./Dependencies/geckodriver0.18.0");
    System.setProperty("webdriver.chrome.driver", "./Dependencies/chromedriver");

    Proxy p = new Proxy();
    p.setHttpProxy("103.66.44.19:53281");//replace this with your desired proxy
    p.setSslProxy("103.66.44.19:53281");//from https://free-proxy-list.net/

    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability(CapabilityType.PROXY,p);

    //For Chrome browser instance
    WebDriver driver = new ChromeDriver(caps);

    driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
    driver.get("https://www.google.com");
    Thread.sleep(20000);
    driver.quit();

    // For Firefox driver instance
    driver = new FirefoxDriver(caps);

    driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);
    driver.get("https://www.google.com");
    Thread.sleep(20000);
    driver.quit();

Try@Sers启动浏览器后,我确实尝试通过运行Javascript来伪装地理位置,但仍然没有返回该特定国家的谷歌搜索结果----------------------JavascriptExecutor js=(JavascriptExecutor)GlobalVars.driver;js.executeScript(“window.navigator.geolocation.getCurrentPosition=function(success){“+”var position={\“coords\”:{\“latitude\:\”+“latitude+”,“longitude\”:\“+”longitude+“\”};“+”success(position);}”);屏幕截图中的页面是一个HTML页面。。。你试过导航到它并自己设置吗?您还可以创建一个自定义配置文件,设置该设置,然后在脚本开头加载自定义配置文件。@JeffC yes。。我已经编写了一个脚本来自动导航到设置和选择所需国家的过程。但这只会增加3秒的时间。你能详细介绍一下如何创建自定义配置文件吗?你建议怎么做?是通过--options.addArguments(“-lang=sl”);--你说呢?如果是的话,我已经试过了。如果没有,请详细说明。这是一个传递给浏览器的参数,我说的是使用您想要的任何设置创建一个特定的配置文件,然后在脚本开头加载该自定义配置文件。你可以在谷歌上搜索“JavaSeleniumChrome配置文件”,看看我在说什么。