1. 程式人生 > >Selenium無法定位元素

Selenium無法定位元素

今天在做163郵箱的自動化登入時,使用各種方法都無法定位元素,後來百度說是因為登入頁面使用了框架,一檢查,如下圖:
頁面使用了id="x-URS-iframe"的內聯框架

使用了內聯框架iframe,原來定位使用者名稱輸入框,僅使用:WebElement user = driver.findElement(By.name(“email”));這一句程式碼,現在因為頁面使用了框架,所以,要想定位該元素,要先定位到這個框架,即:
driver.switchTo().frame(“x-URS-iframe”);

以下是163郵箱登入的所有程式碼,程式碼最後兩行是想要輸出登入後的使用者名稱,不知何故又是無法定位,希望知道的朋友指點!

package hello;
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class GetInfo { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.firefox.marionette"
,"C:\\Program Files (x86)\\Mozilla Firefox\\geckodriver.exe"); System.out.println("start selenium"); WebDriver driver = new FirefoxDriver(); driver.get("http://mail.163.com/"); driver.switchTo().frame("x-URS-iframe"); WebElement user = driver.findElement(By.name
("email")); user.clear(); user.sendKeys("XXXXXXXX"); WebElement password = driver.findElement(By.name("password")); password.clear(); password.sendKeys("XXXXXXXX"); WebElement login = driver.findElement(By.id("dologin")); login.click(); //String username = driver.findElement(By.xpath(".//*[@id='spnUid']")).getText(); //System.out.println(username); } }