Selenium WebDriver基础知识

什么是浏览器元素?

元素是网页上存在的不同组件。我们在浏览时注意到的最常见元素是:

  • 文本框
  • CTA 按钮
  • 图像
  • 超链接
  • 单选按钮 / 复选框
  • 文字区 / 错误信息
  • 下拉框 / 列表框 / 组合框
  • Web表格 / HTML表格
  • 框架

怎么定位和获取这些元素?

由于元素是使用这些属性定位的,因此我们将其称为“定位器”。定位器有:

  • By.id:语法: driver.findElement(By.id(“xxx”));
  • By.name:语法: driver.findElement(By.name(“xxx”));
  • By.className:语法: driver.findElement(By.className(“xxx”));
  • By.tagName:语法: driver.findElement(By.tagName(“xxx”));
  • By.linkText:语法: driver.findElement(By.linkText(“xxx”));
  • By.partialLinkText:语法: driver.findElement(By.partialLinkText(“xxx”));
  • By.css:语法: driver.findElement(By.css(“xxx”));
  • By.xpath:语法: driver.findElement(By.xpath(“xxx”));

上面的语法依次排列为【id查询】,【name查询】,【className类名查询】,【tagName标签查询】,【linkText文字查询】,【css样式查询】和【xpath查询】,他们的寻找的方法各有不同,但是实现效果是一样的。

浏览器元素上的操作

要开始测试网页,我们需要首先打开浏览器,然后通过提供正确的 URL 导航到该网页?看看下面的代码,我在上面复制了同样的代码。Firefox 浏览器将首先启动,然后将导航到 Facebook 的登录页面。

package seleniumWebDriver;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class WebDriverClass
{
    public static void main(String[] args)
    {
        System.setProperty("webdriver.gecko.driver", "files/geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.facebook.com/");
        driver.getTitle();
        driver.quit();
    }
}

然后再driver.getTitle();下面回车一下就开始写代码了

如果您想最大化浏览器窗口的大小,则可以使用下面的代码片段来实现。

driver.manage().window().maximize();

 如果要为浏览器窗口设置自定义尺寸,则可以设置自己的尺寸,如下面的代码片段所示。

Dimension d = new Dimension(420,600);
driver.manage().window().setSize(d);

接下来是我所做自动化测试的一部分代码

Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div/div/form/div[1]/div/div[1]/input")).sendKeys("softtest");
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div/div/form/div[2]/div/div/input")).sendKeys("123456");
		Thread.sleep(2000);
		//获取验证码
		WebElement yzm = driver.findElement(By.xpath("/html/body/div[1]/div/div/div/form/div[3]/div/div/div[2]/span"));
		String text = yzm.getAttribute("textContent");
		Thread.sleep(2000);
		System.out.print(text);
		driver.findElement(By.xpath("/html/body/div[1]/div/div/div/form/div[3]/div/div/div[1]/input")).sendKeys(text);
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div/div/form/div[4]/button")).click();
		
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[2]/div[1]/div/ul/div[7]/li/div")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[2]/div[1]/div/ul/div[7]/li/ul/div[2]/li/div")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div[2]/div[1]/div/ul/div[7]/li/ul/div[2]/li/ul/div[1]/a/li")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[1]/div[1]/div/button")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[1]/div/div/div/input")).sendKeys("test_one");
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[2]/div/div/div[1]/div[1]/input")).sendKeys("00:00");
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[2]/div/div/div[1]/div[2]/input")).sendKeys("01:00");
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[9]/div[1]/div[1]/div/div[2]")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[3]/div/div/div/div[1]/div/div")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[3]/div/div/div[1]/div[2]/div/div[2]/div/div[1]/div[2]/div[1]/div[2]/div[2]/div[4]/img")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[3]/div/div/div[1]/div[2]/div/div[2]/div/div[1]/div[2]/div[1]/div[2]/div[2]/div[5]/img")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[3]/div/div/div[1]/div[2]/div/div[2]/div/div[1]/div[2]/div[1]/div[2]/div[2]/div[6]/img")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[3]/div/div/div[1]/div[2]/div/div[2]/div/div[1]/div[2]/div[1]/div[1]/button")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[4]/div/div/div/span[3]")).click();
		Thread.sleep(2000);
		driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[2]/div/div[2]/div/div/div/form/div[5]/div/div/button")).click();
		String text2 = driver.findElement(By.xpath("/html/body/div[1]/div/div[2]/section/div[1]/div/div[1]/div[2]/div[1]/div[3]/table/tbody/tr[2]/td[2]/div/a/button")).getText();
		Assert.assertFalse(text2.contains("test_one"));

没什么用,只是看看他的用处

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值