public class TestApiTwo {
WebDriver driver;
String url1="http://www.xxx.com";
String url2="http://www.baidu.com";
@BeforeMethod
public void beforeTest(){
System.setProperty("webdriver.firefox.bin","D:\my program\firefox\firefox.exe");
driver = new FirefoxDriver();
}
//输入框清除原有文字并输入内容,单击按钮
@Test
public void testInput(){
driver.get(url1);
WebElement input =driver.findElement(By.id("search_input"));
input.clear();
input.sendKeys("寒战");
try{
Thread.sleep(3000);
}catch(InterruptedException e){
e.printStackTrace();
}
WebElement btn =driver.findElement(By.id("search_btn"));
btn.click();
System.out.println(driver.getTitle());
}
//单选下拉列表
@Test
public void operateDropList(){
Select dropList = new Select(driver.findElement(By.name("fruit")));
Assert.assertFalse(dropList.isMultiple());
//判断下拉框中选项的文字是否符合期望
List except_options = Arrays.asList(new String[]{"桃子","香蕉","橘子","猕猴桃"});
List actual_options=new ArrayList();
for(WebElement option:dropList.getOptions()){
actual_options.add(option.getText());
Assert.assertEquals(except_options.toArray(),actual_options.toArray());
}
String firstText = dropList.getFirstSelectedOption().getText();//获取第一个被选中的选项
Assert.assertEquals("桃子", firstText);
dropList.selectByIndex(3);//通过索引选中第四个选项
String forthText = dropList.getFirstSelectedOption().getText();
Assert.assertEquals("猕猴桃", forthText);
dropList.selectByValue("xiangjiao");//通过value选择选项
String xjText = dropList.getFirstSelectedOption().getText();
Assert.assertEquals("香蕉", xjText);
dropList.selectByVisibleText("橘子");//通过选项的文字选择
String jzText = dropList.getFirstSelectedOption().getText();
Assert.assertEquals("橘子", jzText);
}
//操作多选列表
@Test
public void operateMutipleDropList(){
Select dropList = new Select(driver.findElement(By.name("fruit")));
Assert.assertTrue(dropList.isMultiple());
dropList.selectByIndex(3);
dropList.selectByValue("xiangjiao");
dropList.selectByVisibleText("橘子");
dropList.deselectAll();
dropList.selectByIndex(3);
dropList.selectByValue("xiangjiao");
dropList.selectByVisibleText("橘子");
dropList.deselectByIndex(3);
dropList.deselectByValue("xiangjiao");
dropList.deselectByVisibleText("橘子");
}
//操作单选框
@Test
public void operateRadio(){
//直接操作单个
WebElement radioOption = driver.findElement(By.id("test"));
if(!radioOption.isSelected()){
radioOption.click();
Assert.assertTrue(radioOption.isSelected());
}
//遍历单选框的属性判断
List fruits = driver.findElements(By.name("fruit"));
for(WebElement fruit:fruits){
if(fruit.getAttribute("value").equals("pingguo")){
if(!fruit.isSelected()){
fruit.click();
Assert.assertTrue(fruit.isSelected());
}
break;
}
}
}
//操作复选框
@Test
public void operateCheckBox(){
WebElement orangeCb = driver.findElement(By.id(""));
if(!orangeCb.isSelected()){
orangeCb.click();
Assert.assertTrue(orangeCb.isSelected());
}
if(orangeCb.isSelected()){
orangeCb.click();
Assert.assertTrue(orangeCb.isSelected());
}
List fruits = driver.findElements(By.name("fruit"));
for(WebElement fruit:fruits){
fruit.click();
}
}
//检查页面元素的文本是否出现
@Test
public void isElementTextPresent(){
WebElement text = driver.findElement(By.className("f1"));
String contentText = text.getText();
Assert.assertEquals("欢迎来到xxx网!",contentText);
Assert.assertTrue(contentText.contains("xxx网"));
Assert.assertTrue(contentText.startsWith("欢迎"));
Assert.assertTrue(contentText.endsWith("xxx网!"));
}*/
//查看页面元素的属性
@Test
public void getWebElementAttribute(){
driver.get(url1);
WebElement input = driver.findElement(By.id(""));
String inputString = "寒战";
input.sendKeys(inputString);
String inputText = input.getAttribute("value");
Assert.assertEquals(inputString, inputText);
}
//隐式等待
@Test
public void testImplictWait(){
driver.get(url1);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
try{
WebElement searchInputBox = driver.findElement(By.id(""));
WebElement searchButton= driver.findElement(By.id(""));
searchInputBox.sendKeys("输入框被成功找到");
searchButton.click();
}catch(NoSuchElementException e){
Assert.fail("没有找到搜索的输入框");
e.printStackTrace();
}
}
//常用显示等待
@Test
public void testExplictWait(){
WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.titleContains("水果"));
System.out.println("网页标题出现了水果的关键词");
WebElement select = driver.findElement(By.id(""));
wait.until(ExpectedConditions.elementToBeSelected(select));
System.out.println("下拉列表的选项目前处于选中状态");
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@type='checkbox']")));
System.out.println("页面复选框处于显示和可选状态");
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//p")));
System.out.println("页面的P标签已显示");
WebElement p = driver.findElement(By.xpath("//p"));
wait.until(ExpectedConditions.textToBePresentInElement(p, "爱吃的水果"));
System.out.println("页面P标签包括文本“爱吃的水果” ");
}
//判断页面元素是否存在
public boolean isElementPresent(By by){
try{
driver.findElement(by);
return true;
}catch(NoSuchElementException e){
return false;
}
}
@Test
public void testIsElementPresent(){
driver.get(url2);
if(isElementPresent(By.id("kw"))){
WebElement searchInputBox = driver.findElement(By.id("kw"));
if(searchInputBox.isEnabled()==true){
searchInputBox.sendKeys("搜索框被成功找到");
}else{
Assert.fail("搜索框未找到");
}
}
}
@AfterMethod
public void afterMethod() {
driver.quit();
}
}