当前位置: 首页 > 知识库问答 >
问题:

在Selenium中使用POM模式使用混合框架时更改Chrome中的默认下载位置

谢锦程
2023-03-14
public static void main(String[] args) throws InterruptedException {
        
        // Setting chrome driver path
        System.setProperty("webdriver.chrome.driver","C:\\Users\\pdholakia\\Downloads\\Provider\\chromedriver_win32\\chromedriver.exe");
     
         // Setting new download directory path
         Map<String, Object> prefs = new HashMap<String, Object>();
             
         // Use File.separator as it will work on any OS
          prefs.put("download.default_directory", "C:\\Users\\pd\\Desktop\\AHNPTest");
                 
             
            // Adding cpabilities to ChromeOptions
            ChromeOptions options = new ChromeOptions();
            options.setExperimentalOption("prefs", prefs);
             
                        
            // Launching browser with desired capabilities
            ChromeDriver driver= new ChromeDriver(options);
             
            // URL loading
            driver.get("https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-4.1.2-20200217.zip");
             
            // Click on download selenium server jar file
            Thread.sleep(3000);
            WebElement download = driver.findElement(By.xpath("//p[2]//a[1]//strong[1]"));
            Actions act = new Actions(driver);
            act.moveToElement(download).click().build().perform();
             
     
        }
    }
public class TestBaseClass {
    public static WebDriver driver;
    public static void initialization() throws InvocationTargetException {
    try {
        WebDriverManager.chromedriver().setup();
        driver = new ChromeDriver();
        
            
        }catch (Exception e) {
            // generic exception handling
            e.printStackTrace();
            }

        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();
        driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
        driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);
                
    }
    public void login() {
        driver.get("https://ahnpttest.com/Account/Login");
        
        driver.findElement(By.id("EmailAddress")).sendKeys("abc.dh@npalvinre.com");
        driver.findElement(By.id("Password")).sendKeys("xyz@123");
        driver.findElement(By.id("LoginButton")).click();
    }
    
}   

任何帮助都将不胜感激。

共有1个答案

芮安顺
2023-03-14

你走在正确的道路上。您只需传递baseclass驱动程序实例创建行中的选项。

// Setting new download directory path
         Map<String, Object> prefs = new HashMap<String, Object>();
             
         // Use File.separator as it will work on any OS
          prefs.put("download.default_directory", "C:\\Users\\pd\\Desktop\\AHNPTest");
                 
             
            // Adding cpabilities to ChromeOptions
            ChromeOptions options = new ChromeOptions();
            options.setExperimentalOption("prefs", prefs);
             
                        
            // Launching browser with desired capabilities
            WebDriverManager.chromedriver().setup();
            driver = new ChromeDriver(options); //<====== This is the line
 类似资料:
  • 我试图改变chrome首选项使用下面的代码,但我不能这样做。我需要使用Java/Selenium更改chrome中文件的下载位置。我尝试了2-3个代码片段如下所述,但没有一个对我有效。

  • 我想问一下,是否有人试图使用selenium 3.X更改微软Edge Chromium驱动程序的默认下载位置。在Chrome浏览器上,我们可以使用类似这样的内容 信息:Microsoft Edge浏览器版本:80.0.361.66(官方版本)(64位) 预先感谢

  • 我想使用Python的webdriver启动带有默认配置文件的Chrome,以便Cookie和站点首选项在会话中保持不变。 我该怎么做?

  • 我正试图更改我的用户代理,并将更改后的用户代理打印到终端,以检查它是否已成功更改,但我没有运气。 def拦截器(请求): 我也不能从selenium wire打印用户代理,我只能使用此方法。 打印(代理) 请有人帮忙,不胜感激:)

  • 问题内容: 请找到以下带有镶边功能的代码。实际上,浏览器没有将文件下载到指定的路径。 问题答案: 对于Chromedriver,请尝试: 注意:-在Windows中,您需要使用\\作为路径,而如果您使用linux或mac,则使用// 希望这可以帮助。:)

  • 我们使用Spring靴和Spring Boothttps://springdoc.org/生成OpenApi文档。我们希望更改LocalDateTime的默认模式,因此我们不会在每次使用LocalDateTime时都使用相同的注释。因此,我补充说: 它起作用了。问题是现在不可能为特定字段添加自定义描述或示例: 如您所见,Swagger UI中缺少以下描述:缺少描述的屏幕截图 有可能修复吗?是否有其