1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > selenium无法定位到QQ邮箱登录页面的输入框元素和登录按钮元素-解决方法

selenium无法定位到QQ邮箱登录页面的输入框元素和登录按钮元素-解决方法

时间:2021-12-13 03:15:17

相关推荐

selenium无法定位到QQ邮箱登录页面的输入框元素和登录按钮元素-解决方法

问题如下:

代码如下:

package TestNG1;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.support.FindBy;

import org.openqa.selenium.support.PageFactory;

import org.testng.annotations.Test;

public class TestDemo1 {

@FindBy(id="u")

public WebElement Username;

@FindBy(id="p")

public WebElement Password;

@FindBy(id="login_button")

public WebElement Loginbutton;

public TestDemo1(WebDriver driver){

PageFactory.initElements(driver,this);

}

}

package TestNG1;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.Test;

public class TestDemo2 {

WebDriver dr;

String url="https://en./cgi-bin/loginpage";

@BeforeMethod

public void BeforeMethod(){

System.setProperty("webdriver.firefox.bin", "D:\\programfile\\firefox\\firefox.exe");

dr=new FirefoxDriver();

dr.get(url);

dr.manage().window().maximize();

}

@Test

public void f() {

TestDemo1 test=new TestDemo1(dr);

test.Username.sendKeys("XXXXXX");

test.Password.sendKeys("XXXXXX");

test.Loginbutton.click();

}

}

页面报错:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"id","selector":"u"}

修改为:

package TestNG1;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.Test;

public class TestDemo2 {

WebDriver dr;

String url="https://en./cgi-bin/loginpage";

@BeforeMethod

public void BeforeMethod(){

System.setProperty("webdriver.firefox.bin", "D:\\programfile\\firefox\\firefox.exe");

dr=new FirefoxDriver();

dr.get(url);

dr.manage().window().maximize();

}

@Test

public void f() {

WebElement frame=dr.findElement(By.id("login_frame")); // 添加frame元素

dr.switchTo().frame(frame);

TestDemo1 test=new TestDemo1(dr);

test.Username.sendKeys("XXXXXXX");

test.Password.sendKeys("XXXXXXX");

test.Loginbutton.click();

}

}

原因: 因为element包含在frame内,因此需要在查找元素前加入转到frame语句

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。