我在驅動程序中使用硒的PhantomJS
。在這裏,我發現插入電子郵件地址沒有問題。但是,在點擊下一個之後,應該有一個名爲'password'的輸入標籤。但是,在等待之後,我無法獲得所需的「密碼」標籤。它顯示錯誤沒有找到元素。有時候,我收到以下錯誤(顯示堆棧跟蹤):無法找到密碼輸入對象用硒登錄谷歌
org.openqa.selenium.InvalidElementStateException: {"errorMessage":"Element is not currently interactable and may not be manipulated","request":{"headers":{"Accept-Encoding":"
因爲,我已經等待了足夠的時間,下面的代碼必須工作。 這是下面的代碼片段的工作。
driver.get("https://accounts.google.com/ServiceLoginAuth");
driver.findElement(By.id("identifierId")).sendKeys("xxxxxxxx");
driver.findElement(By.id("identifierNext")).click();
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.presenceOfElementLocated(By.name("password")));
driver.findElement(By.name("password")).sendKeys("xxxxxxxx");
driver.findElement(By.id("passwordNext")).click();
這裏是顯示了從google sign in page電子郵件輸入字段中特定的HTML:
input type="email" class="whsOnd zHQkBf" jsname="YPqjbf" autocomplete="username" spellcheck="false" tabindex="0" aria-label="Email or phone" name="identifier" id="identifierId" dir="ltr" data-initial-dir="ltr" data-initial-value=""
的下一頁按鈕id是 'identifierNext' 和HHE隱藏的密碼字段:
input type="password" name="hiddenPassword" jsname="RHeR4d" class="yb9KU" tabindex="-1" aria-hidden="true"
插入郵件後點擊下一步,輸入字段爲Ë密碼是:
input type="password" class="whsOnd zHQkBf" jsname="YPqjbf" autocomplete="current-password" spellcheck="false" tabindex="0" aria-label="Enter your password" name="password" autocapitalize="off" autocorrect="off" dir="ltr" data-initial-dir="ltr" data-initial-value=""
現在的問題是,我已經使用等機制重新加載頁面,這樣我可以得到密碼插入頁面。但是,使用Selenium我找不到'password'的指定標籤。 我認爲點擊無法正常工作。是否有機會不工作點擊Next?
是密碼字段是動態的,發送電子郵件對於G郵件的完整代碼? –
你爲什麼使用'By.name'作爲'password'字段,'By.id'作爲'passwordNext'字段?試試'By.id'。 – Dalton
正如@santhosh指出的那樣,如果該字段是動態的,則應該使用xpath。 – Dalton