Skip to content
This repository has been archived by the owner on Apr 12, 2024. It is now read-only.

Can't Import Private Key #358

Open
imacrosid opened this issue Mar 19, 2024 · 2 comments
Open

Can't Import Private Key #358

imacrosid opened this issue Mar 19, 2024 · 2 comments
Labels
help wanted Extra attention is needed

Comments

@imacrosid
Copy link

imacrosid commented Mar 19, 2024

Describe the problem
Actually I'm facing 2 problem, When I try to setup metamask it doesn't use my config (seed, password & always show testnet) but it's okay. I just want to know how to fix failed when trying to import PK.
image

You think I'm doing wrong step ? Please let me know thanks.

async function task5_Week3(newPrivateKey) {
  const newSeed =
    "test test test test test test test test test test test test ";
  const DappeteerLaunchOptions = {
    metaMaskVersion: "v11.12.1",
    metaMaskPath: "metamask-chrome-11.12.1.zip",
    automation: "puppeteer",
    headless: false,
  };

  const MetaMaskOptions = {
    seed: newSeed,
    password: "Abc12345",
    showTestNets: false,
  };
  try {
    const { metaMask, browser } = await dappeteer.bootstrap(
      DappeteerLaunchOptions,
      MetaMaskOptions
    );
    const dappPage = await browser.newPage();
    await dappPage.goto("https://www.google.com");
    await metaMask.importPK(newPrivateKey);
  } catch (error) {
    console.error("Something Wrong:", error);
  }
}

Log

Something Wrong: TimeoutError: Waiting for selector `.//span[contains(.,'Eth_sign requests')]/parent::div/following-sibling::div/div/div/div|//span[contains(.,'Eth_sign requests')]/parent::div/following-sibling::div/div/label/div` failed: Waiting failed: 30000ms exceeded

System:

  • OS Windows 10 Home Single Language
  • NodeJs v20.10.0
  • dappeteer 5.2.1
  • puppeteer 21.6.1
@imacrosid imacrosid added the help wanted Extra attention is needed label Mar 19, 2024
@eugene-ray
Copy link

Having the same issue and can't find a workaround so far.

@jeasonnow
Copy link

The current version of dappeteer supports an older version of the MetaMask extension. In the latest version, the DOM structure of the MetaMask toggle component has changed. Please refer to the snapshot for details.

from: //span[contains(.,'${text}')]/parent::div/following-sibling::div/div/label/div
to: //span[contains(.,'${text}')]/parent::div/following-sibling::div/label/div

<div
      class="mm-box settings-page__content-row mm-box--display-flex mm-box--flex-direction-column"
      data-testid="advanced-setting-toggle-ethsign"
    >
      <div
        class="settings-page__content-item"
      >
        <span>
          Eth_sign requests
        </span>
        <div
          class="settings-page__content-description"
        >
          If you enable this setting, you might get signature requests that aren’t readable. By signing a message you don't understand, you could be agreeing to give away your funds and NFTs.
        </div>
      </div>
      <div
        class="settings-page__content-item-col"
      >
        <label
          class="toggle-button toggle-button--off eth-sign-toggle"
          tabindex="0"
        >
          <div
            style="display: flex; width: 52px; align-items: center; justify-content: flex-start; position: relative; cursor: pointer; background-color: transparent; border: 0px; padding: 0px; user-select: none;"
          >
            <div
              style="width: 40px; height: 24px; padding: 0px; border-radius: 26px; display: flex; align-items: center; justify-content: center; background-color: rgb(242, 244, 246);"
            >
              <div
                style="font-size: 11px; display: flex; align-items: center; justify-content: center; font-family: 'Helvetica Neue', Helvetica, sans-serif; position: relative; color: rgb(250, 250, 250); margin-top: auto; margin-bottom: auto; line-height: 0; opacity: 0; width: 26px; height: 20px; left: 4px;"
              />
              <div
                style="font-size: 11px; display: flex; align-items: center; justify-content: center; font-family: 'Helvetica Neue', Helvetica, sans-serif; position: relative; color: rgba(255, 255, 255, 0.6); bottom: 0px; margin-top: auto; margin-bottom: auto; padding-right: 5px; line-height: 0; width: 26px; height: 20px; opacity: 1;"
              />
            </div>
            <div
              style="position: absolute; height: 100%; top: 0px; left: 0px; display: flex; flex: 1; align-self: stretch; align-items: center; justify-content: flex-start;"
            >
              <div
                style="width: 18px; height: 18px; display: flex; align-self: center; box-shadow: none; border-radius: 50%; box-sizing: border-box; position: relative; background-color: rgb(106, 115, 125); left: 3px;"
              />
            </div>
            <input
              style="border: 0px; height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;"
              type="checkbox"
              value="false"
            />
          </div>
          <div
            class="toggle-button__status"
          >
            <span
              class="toggle-button__label-off"
            >
              OFF (Recommended)
            </span>
            <span
              class="toggle-button__label-on"
            >
              ON (Not recommended)
            </span>
          </div>
        </label>
      </div>
    </div>

The method used by the current version of dappeteer to access this toggle is as follows:

export const getSettingsSwitch = (
  page: DappeteerPage,
  text: string
): Promise<DappeteerElementHandle | null> =>
  page.waitForXPath(
    [
      `//span[contains(.,'${text}')]/parent::div/following-sibling::div/div/div/div`,
      `//span[contains(.,'${text}')]/parent::div/following-sibling::div/div/label/div`,
    ].join("|"),
    { visible: true }
  );

To fix this issue, a new XPath needs to be added://span[contains(.,'${text}')]/parent::div/following-sibling::div/label/div

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants