selenium拖动元素java_获取一系列网页元素并拖动到任意相应位置的自动化测试

测试案例:从网页中特定位置获取所有可拖动元素的数组列表,及相应目标位置的元素数组列表,并将所有可拖动元素拖动到任意的目标位置。

测试实现代码:

import java.util.ArrayList;

import org.openqa.selenium.browserlaunchers.Sleeper;

import org.openqa.selenium.ie.InternetExplorerDriver;

import org.openqa.selenium.interactions.Actions;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.openqa.selenium.support.ui.ExpectedConditions;

import org.openqa.selenium.support.ui.WebDriverWait;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

public class test {

public static void

main(String[] args) {

final String

sUrl = http://www.***.com;

System.setProperty("webdriver.ie.driver",IEDriverPath());

DesiredCapabilities ieCapabilities =

DesiredCapabilities.internetExplorer();

ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);

ieCapabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING,

true);

ieCapabilities.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, sUrl);

//若不对IEdriver进行URL初始化,代码只能成功执行到driver.get(sUrl)这一步,后面的代码运行将出错,而且driver.quit()也quit不了。而加上了URL初始化到要测试的网站,则代码执行就不会出现这些问题。

//而且我发现若不将网页在此初始化到要测试的网站,则getWindowHandle()将经常失败,driver也不能成功退出。而若在此作了初始化的处理,则即使get网站里的其它网页getWindowHandle()也总是成功,driver也能成功退出。

//(没看到别人有遇到这样的问题,为什么我会遇到这样的问题呢?难道是我的测试环境有问题?(我的环境:IE11+Selenium2.39+IEdriver2.39(x86)))

WebDriver driver;

driver = new

InternetExplorerDriver(ieCapabilities);

try {

driver.get(sUrl+"/cart");

dragPhotos(driver);

driver.quit();

} catch (Exception e) {

// TODO

Auto-generated catch block

System.out.println(e.getClass().getName() + "/n"

+ e.getMessage());

driver.quit();

}

}

public static void

dragPhotos(WebDriver driver) throws Exception

{

ArrayList bySource = getElementsList(driver,

"#THUMB_%d > img",

"cssSelector");

ArrayList byTarget = getElementsList(driver,

"UCD_PHOTO_DRAGGER_%d",

"id");

if(bySource.isEmpty() || byTarget.isEmpty())

{

throw new

Exception("No source element or target

element found, drag-drop test blocked!");

}

for(int i=1;i 

{

int j =

(int)

((byTarget.size()-1)*Math.random());

dragAndDrop(driver, bySource.get(i),

byTarget.get(j));

}

}

public staticBoolean dragAndDrop(WebDriver driver, By

source, By target){

try{

Actions action = new

Actions(driver);

WebDriverWait wait = new

WebDriverWait(driver, 60);

WebElement elementSource =

wait.until(ExpectedConditions.presenceOfElementLocated(source));

WebElement elementTarget =

wait.until(ExpectedConditions.presenceOfElementLocated(target));

action.dragAndDrop(elementSource,

elementTarget).perform();

Sleeper.sleepTight(5);

return true;

}

catch(Exception

e)

{

System.out.println(e.getClass().getName() + " "

+ e.getMessage());

return false;

}

}

public static ArrayList

getElementsList(WebDriver driver, String regStrElement, String

byType)

{

String strElement;

ArrayList elementList = new

ArrayList();

By element;

for(int i=0;;){

strElement = String.format(regStrElement,

i);

switch(byType){

case "id":

element = By.id(strElement);

break;

case "cssSelector":

element = By.cssSelector(strElement);

break;

case "xpath":

element = By.xpath(strElement);

break;

case "linkText":

element = By.linkText(strElement);

break;

case "name":

element = By.name(strElement);

break;

case "className":

element = By.className(strElement);

break;

case "partialLinkText":

element =

By.partialLinkText(strElement);

break;

default:

element = By.id(strElement);

break;

}

try{

driver.findElement(element);

elementList.add(element);

i++;

}

catch(Exception

e)

{

System.out.println(e.getClass().getName() + " "

+ e.getMessage());

break;

}

}

return elementList;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值