版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangshangchunjiezi/article/details/89670340
一、selenium自动化要做的事情
模拟鼠标和键盘来操作这些元素,操作包括点击、输入、右击、鼠标拖动等
二、定位元素
8种方法:org.openqa.selenium.By
...
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
<input type="submit" id="su" value="百度一下" class="bg s_btn">
...
常用5种
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class baidu {
public static void main(String[] args) {
System.setProperty("webdriver.firefox.bin", "D:/Program Files (x86)/Mozilla Firefox/firefox.exe");
System.setProperty("webdriver.gecko.driver", "E://selenium//geckodriver-v0.24.0-win64//geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("http://www.baidu.com/");//向浏览器发送网址
/*
WebElement txtbox=driver.findElement(By.id("kw")); //根据属性id找到百度输入框
CharSequence[] str={"selenium java"};
txtbox.sendKeys(str);//文本框输入内容
WebElement btn=driver.findElement(By.id("su")); //根据属性id=su找到百度一下搜索按钮
btn.click();//点击
*/
WebElement txtbox=driver.findElement(By.name("wd"));
System.out.println(txtbox.getTagName());
WebElement txtbox1=driver.findElement(By.tagName("input"));//因相同标签的tag很多,所以一般不使用
System.out.println(txtbox1.getTagName());
WebElement link=driver.findElement(By.linkText("新闻")); //link定位
link.click();
WebElement link2=driver.findElement(By.partialLinkText("百度首"));
link2.click();
}
}
三、控制浏览器后退、前进
浏览器提供了后退、前进按钮,方便的对浏览过的页面之间切换,那么WebDriver也提供了对应的back()、forward()方法模拟后退、前进按钮。
public static void main(String[] args) {
System.setProperty("webdriver.firefox.bin", "D:/Program Files (x86)/Mozilla Firefox/firefox.exe");
System.setProperty("webdriver.gecko.driver", "E://selenium//geckodriver-v0.24.0-win64//geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("http://www.baidu.com/");//向浏览器发送网址
WebElement link=driver.findElement(By.linkText("新闻"));
String newLink=link.getAttribute("href");
System.out.println(newLink);
//跳转页面
driver.get(newLink);
//跳回
driver.navigate().back();
System.out.println("往回跳");
//往前跳
driver.navigate().forward();
System.out.println("往前跳");
}
三、