13

我正在尝试访问需要 Metamask 扩展来访问它的 Dapp。我通过 chrome 扩展添加了它。我知道如何在 selenium 中将扩展添加到 chrome 实例,但我不知道如何添加密码等。谁能下载 Metamask 并给我一个示例,说明如何使用它通过 selenium 传递凭据?

 ChromeOptions options = new ChromeOptions();
 options.addArguments("--start-maximized");
 options.addExtensions(newFile("//Applications//chrome//MetaMask_v3.13.8.crx"));                
 driver = new ChromeDriver(options);
4

2 回答 2

0

这是一个简单的示例,您可以如何轻松地创建不同的配置文件并加载它们。自动化扩展并不难,您只需将其作为页面打开并像另一个页面一样与之交互。

headless_options = Options()
headless_options.add_argument("--start-maximized");
headless_options.add_extension("extension_10_9_0_0.crx");
headless_options.add_argument("user-data-dir=C:/Users/V/Documents/STACKS OVERFLOW/Test")  # Save Profile
headless_options.add_argument("--profile-directory=test")  # Choose witch profile you would like to use
driver = webdriver.Chrome(options=headless_options)
driver.get(
    'chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html#initialize/create-password')  # Go straight to creating Metamaks wallet

driver.switch_to.window(driver.window_handles[1])  # Switch to main tab

driver.find_element(By.ID, "create-password").send_keys("IlovePython")
driver.find_element(By.ID, "confirm-password").send_keys("IlovePython")
driver.find_element(By.CLASS_NAME, "first-time-flow__checkbox").click()

driver.find_element(By.XPATH, "//*[@id=\"app-content\"]/div/div[2]/div/div/div[2]/form/button").click()
于 2022-02-09T00:04:17.373 回答
0

由于在 Metamask 中输入钱包信息的过程相当复杂,似乎让您的测试与 Metamask 扩展一起工作的最佳方法是使用已定义的配置文件目录启动 Chrome,使用预配置的 Chrome 配置文件:

# google-chrome -user-data-dir=/tmp/profile

然后添加 Metamask 扩展并手动配置您的钱包,然后将对应参数添加到 WebDriver 选项以使用此配置文件而不是创建一个空配置文件:

options.addArguments("user-data-dir=/tmp/profile");

然后,在测试中,您必须重新输入 Metamask 的密码,然后您就可以完成所有设置。

于 2021-06-01T11:11:00.127 回答