元素的Actions(特效)及基本UI控件操作

说明:不同的页面元素具有不同Actions,例如一个按钮就可以具备”单击“Action,但你肯定无法在按钮上”输入“文字。虽然在WebDriver的API中,所有的Actions罗列在WebElements中,但是测试开人人员务必弄清楚这些Actions的适用对象。如果在错误的页面元素上使用了无效的Actions,不会看到有任何的错误提示信息并且相关的操作也不会被触发,因为WebDriver会忽略当前页面元素所不支持的Actions。

1、sendKeys()   网站转载

2、clear()  网站转载

3、submit()  网站转载

----------------------------------------------------------------------------------------------------------------------------------------------------------------

个人整理:

1、如果是form表单提交的话,都可以用submit直接操作,以上例子是form表单中的一个文本框元素非这个表单提交,所以可以直接用submit,如果用clink()的话还需要获取按钮那个元素然后再调用clink()点击事件。

2、form表单的两种提交方式,submit和button的用法,而我们在写脚本的时候,只需要知道form表单这个打标签就行,不需要关注form表单内部的提交方式是submit还是button,我们都可以直接用.clink()或者.submit()来执行点击事件。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

4、isDisplayed()  网站转载

5、isEnabled()  网站转载

6、isSelected()   网站转载

7、getAttribute()   网站转载

---------------------------------------------------------------------------------------------------------------------------------------------------------

个人整理:例子  -判断select选中了那个option具体例子如下

List<WebElement> list1 = dr.findElement(By.id("update_repaymentDateType")).findElements(By.tagName("option"));
		System.out.println(list1.size());
		for(int i=0;i<list.size();i++) {
			if(list.get(i).getAttribute("selected").equals("true")) {
				System.out.println(list.get(i).getText());
			}
		}
		System.out.println(list.get(0).getAttribute("selected"));//返回true或则和false
		System.out.println(list.get(1).getAttribute("selected"));

 

getText()和getAttribute()之间的区别:

1、getText获取元素的visible(可见)内嵌前台文字

例如:

如csdn首页中的链接<a class="left" target="_blank" href="http://www.csdn.net" onclick="LogClickCount(this,285);">首页</a>。

通过
        driver = new FirefoxDriver();
        url = "http://www.csdn.net/";
        driver.get(url);
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        String text = driver.findElement(By.xpath("//div[@class='csdn_pub_nav_bg']/div[1]/a[1]")).getText();

可取得文本“首页”。

2、getgetAttribute():返回指定属性名的属性值

  例如:

而对于页面上输入类型的元素(input,textarea等),则不能通过getText()获取到相应的文本。如csdn首页中搜索框中默认的“搜索”二字。其标签为
<input id="srch1" class="search" type="text" onblur="if(this.value=='') this.value='搜索';
this.style.color='#999'; return true;" onfocus="if(this.value=='搜索')
this.value='';this.style.color='#333'; return true;" value="搜索"
name="passwordtwo" style="color: rgb(153, 153, 153);"/> 通过String errorValue = driver.findElement(By.xpath("//input[@class='search']")).getText();得到的值为空。此时应使用getAttribute()。 getAttribute(String name):获取元素中名为name的属性的值。 通过String value = driver.findElement(By.xpath("//input[@class='search']")).getAttribute("value"); 即可获取到值“搜索”。 通过String type = driver.findElement(By.xpath("//input[@class='search']")).getAttribute("type");则对应可获得值“text”。

-----------------------------------------------------------------------------------------------------------------------------------------------------------

8、getText()    网站转载

9、getTagName()    网站转载

10、getCssValue()   网站转载

11、getLocation()  网站转载

 

基本UI空间操作 (网站转载)

1. 文本框Textbox

     // Find the username input element by its name
     WebElement username = driver.findElement(By.name("username"));

      // Enter the user name: jill
     username.clear();
      username.sendKeys("jill");
     
      // Find the password input element by its name
     WebElement password = driver.findElement(By.name("password"));

     // Enter the password:123456
     password.clear();
      password.sendKeys("123456");

2. 按钮Button

     // Click the Login button by className
     WebElement loginButton = driver.findElement(By.className("btnTile"));  
      loginButton.click();

3. 下拉框Select

    //通过id或者name来定位下拉框, new一个Select对象

    Select globalSelect = new Select(driver.findElement(By.id("selectid")));

     //通过选项索引选中第二项

    globalSelect.selectByIndex(1);--[注]index是从0开始的

     //通过下拉选项的内容选中第二项(second_item)

     globalSelect.selectByVisibleText("second_item");

   //遍历Select下拉列表的选项

     WebElement select = driver.findElement(By.tagName("select"));

     List<WebElement> myOptions = select.findElements(By.tagName("option"));

     for (WebElement option : myOptions) {

             System.out.println(option.getAttribute("value");

             option.click();

      }

4. 对话框Alert, Confirm, Prompt

   //捕获Alert/Confirm/Prompt对话框

   Alert alert = driver.switchTo().alert();

    //获得Alert/Confirm/Prompt对话框内容

   String alertText = alert.getText();

    //确认Alert/Confirm/Prompt
    alert.accept();

   //取消Alert/Confirm/Prompt

   alert.dismiss();

   //输入值到Prompt

    prompt.sendKeys("abc");

 

5. 弹出窗口 popup window

    //使用driver.switchTo()可以进行Windows, Frames, Alerts, Confirms, Prompts之间的切换

    driver.switchTo().window("windowhandle");

     driver.switchTo().frame("framename");

     driver.switchTo().alert();

     

6. 切换到新的Window(import java.util.Set;)

      //1.  保存之前的Windows Handles

     Set<String> beforeHandlers = driver.getWindowHandles();
      String beforeHandler = beforeHandlers.iterator().next();

      // 2.  执行弹出新窗口的操作
      WebElement KButton = driver.findElement(By.name("OK"));
      OKButton.click();

      //3.  保存现在的Windows Handles  
      Set<String> afterHandlers = driver.getWindowHandles();
        
      //4.  从现在的Windows Handles中remove调之前的,就能得到刚弹出新窗口的window handle

      afterHandlers.removeAll(beforeHandlers);
        
      String newWinhandler = afterHandlers.iterator().next();
            
      //5. 切换到新弹出的窗口        
     driver.switchTo().window(newWinhandler);

      //6. 返回之前的窗口

      driver.switchTo().window(beforeHandler);

    

7. 上传文件

    WebElement FileUpload =driver.findElement(By.name("fileupload"));
     String filePath = "C:\\myFile01";
     earFileUpload.sendKeys(filePath);

 

 
posted on 2015-11-05 12:56  小果子  阅读(357)  评论(0编辑  收藏  举报