System.setProperty("webdriver.chrome.driver", "E:\\javaselenium\\bao\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://mail.qq.com/");
driver.manage().window().maximize();
Thread.sleep(3000);
WebElement frame=driver.findElement(By.id("login_frame")); // 添加frame元素
driver.switchTo().frame(frame);
//原因: 因为element包含在frame内,因此需要在查找元素前加入转到frame语句。这里普通的是定位不到的
WebElement ele6 = driver.findElement(By.xpath("//div[@class='web_login']/div[2]/form/div[1]/div/input"));
Thread.sleep(1000);
ele6.sendKeys("3274029080");
System.out.println("输入QQ号");
WebElement ele7 = driver.findElement(By.xpath("//div[@class='web_login']/div[2]/form/div[2]/div[1]/input"));
Thread.sleep(1000);
ele7.sendKeys("XXXX");
System.out.println("输入QQ密码");
driver.switchTo().defaultContent();//退出frame,才能操作表单外的元素
WebElement ele9 = driver.findElement(By.xpath("//div[@class='container']/div[1]/div/a[1]"));
Thread.sleep(1000);
ele9.click();
System.out.println("点击基本版本");
参考:
selenium无法定位到QQ邮箱登录页面的输入框元素和登录按钮元素-解决方法