让我登录geckodriver selenium(java)

guz6ccqo  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(390)

我正在使用selenium自动化网站。我的问题是,每次运行代码时我都要登录,gecko驱动程序在firefox中打开一个新的选项卡,它会再次填充登录详细信息。还有别的办法吗。
代码。。。

WebDriver driver = new FirefoxDriver();
    driver.get("https://www.instagram.com/");
    Thread.sleep(5000);
    WebElement usename = driver.findElement(By.cssSelector("form#loginForm > div > div > div > label > input"));
    WebElement password = driver.findElement(By.cssSelector("form#loginForm > div > div:nth-of-type(2) > div > label > input"));
    Thread.sleep(3000);
    usename.sendKeys("username");
    password.sendKeys("password");
    password.sendKeys(Keys.ENTER);
3j86kqsm

3j86kqsm1#

首先创建一个配置文件,然后选择该配置文件并登录到该站点。这会将cookies存储到该配置文件中。现在使用该配置文件。

类型about:profiles and 单击“创建配置文件”,创建后单击“使用配置文件启动浏览器”,并在新浏览器中登录到该网站。现在会话将保存在该配置文件中。
现在您可以在代码中使用此配置文件:
您可以将此firefox配置文件用作:
java 语:
在java中,应提供新配置文件的配置文件名:

ProfilesIni profileini = new ProfilesIni();

    FirefoxOptions options = new FirefoxOptions();
    options.setProfile(profileini.getProfile("newprofile"));

    WebDriver driver = new FirefoxDriver(options);

Python:
在python中,您应该为创建的newprofile提供绝对根路径:

from selenium import webdriver
from selenium.webdriver.firefox import firefox_profile

fp = webdriver.FirefoxProfile(
  r'C:\Users\prave\AppData\Roaming\Mozilla\Firefox\Profiles\ezz3mtyg.newprofile')
driver = webdriver.Firefox(firefox_profile=fp)

driver.get("url")

相关问题