Java实现简单的selenium开启多个浏览器(Paramaters实现)

15 篇文章 0 订阅
11 篇文章 0 订阅

XML配置

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="photo suite" parallel="tests" thread-count="2">
	<test name="photo test1">
    <parameter name="browser" value="chrome" />
        <classes>
			<class name = "demo.TestReorder2"/>
        </classes>
    </test>
    
    <test name="photo test2">
    <parameter name="browser" value="firefox" />
        <classes>
			<class name = "demo.TestReorder2"/>
        </classes>
    </test>
</suite>

TestReorder2.java

package demo;

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import demo.login;

public class TestReorder2 {
	static WebDriver driver;
	
	@Parameters("browser")
	@BeforeClass
	public void beforeclass(String browserName) throws InterruptedException {
		
		driver = login.main(browserName);
		login.into(driver);
	
	}
	
	@Test
	public static void ReorderTest() throws InterruptedException {
		//点击排序按钮
		driver.findElement(By.xpath("//span[contains(text(),'排序')]")).click();
		
		//点击自定义排序
		driver.findElement(By.xpath("//a[contains(text(),'自定义排序')]")).click();
		
		WebElement source = driver.findElement(By.xpath("//div[@title='排序B']"));
		WebElement target = driver.findElement(By.xpath("//div[@title='排序A']"));
		Actions act = new Actions(driver);
		act.dragAndDrop(source, target).perform();
		
		Thread.sleep(2000);
		
		//点击保存按钮
		driver.findElement(By.xpath("//a[contains(text(),'保存')]")).click();
		
		//排序验证,变成B-A-C
		List<WebElement> albums = driver.findElements(By.xpath("//*[@id=\"photo-163-com-container\"]/div[1]/div[2]/div/div[2]/span[1]"));

		for( int i = 0 ; i < albums.size() ; i++) {
			if(albums.get(i).getText().equals("排序B")) {
				Assert.assertEquals(albums.get(i+1).getText(), "排序A");
				Assert.assertEquals(albums.get(i+2).getText(), "排序C");
				break;
			}
		}

	}
	
	@AfterMethod
	public void afterMethod() throws InterruptedException {
		//数据清理-重新排序
		//点击排序按钮
		driver.findElement(By.xpath("//span[contains(text(),'排序')]")).click();
		
		//点击自定义排序
		driver.findElement(By.xpath("//a[contains(text(),'自定义排序')]")).click();
		WebElement source = driver.findElement(By.xpath("//div[@title='排序A']"));
		WebElement target = driver.findElement(By.xpath("//div[@title='排序B']"));
		Actions act = new Actions(driver);
		act.dragAndDrop(source, target).perform();
		driver.findElement(By.xpath("//a[contains(text(),'保存')]")).click();
	}
	
	@AfterClass(alwaysRun = true)
	public void afterClass() {
		driver.quit();
	}
}

login.java

package demo;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class login {
	
	
	@Test
	public static WebDriver main(String browserName) throws InterruptedException {
		// TODO Auto-generated method stub
		WebDriver driver = null;
		
		if (browserName.equalsIgnoreCase("firefox")) {
			System.setProperty("webdriver.firefox.bin", "D:\\Mozilla Firefox\\firefox.exe");
			driver = new FirefoxDriver();
		}else{
			driver = new ChromeDriver();
		}
		
		driver.manage().window().maximize();
		
		driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
		
		driver.get("http://photo.163.com");
		
		//切换frame
		driver.switchTo().frame(driver.findElement(By.xpath(("//*[@id=\"ursloginwrap\"]/iframe"))));
		
		driver.switchTo().frame(driver.findElement(By.xpath(("//*[@id=\"login-URS-iframe\"]/iframe"))));
		
		//输入用户名
		WebElement userName = driver.findElement(By.name("email"));
		userName.sendKeys("XXXX");
		
		//输入密码
		WebElement password = driver.findElement(By.name("password"));
		password.sendKeys("XXXX");
		
		//点击登录
		driver.findElement(By.id("dologin")).click();
		
		Thread.sleep(5000);
		
		//个人账号会进入博客激活界面,试了下服务已从8月分开始关闭了,我这里重新get或者浏览器回退达到相同的目的
		driver.switchTo().defaultContent();		//加这句以提高稳定性,防止报错can't access dead object
		driver.get("http://photo.163.com");
		
		return driver;
	}
	
	public static void into(WebDriver driver) throws InterruptedException {
		//点击进入我的相册按钮
		driver.findElement(By.xpath("//*[@id='J-loginMod']//span[@class='name']")).click();
		
		Thread.sleep(5000);
		
		//判断是否进入我的相册
		Assert.assertEquals(driver.getTitle(), "evanqianyue的网易相册_evanqianyue个人相册相片存储_网易相册", "进入我的相册错误");
	}
	
}

这段代码主要是用于处理图像分类数据,并使用图最小最大化算法进行图像分类。下面是对代码的解释: 1. `clear clc warning off;`: 清空命令行窗口并关闭警告信息; 2. `path = pwd; addpath(genpath(path));`: 将当前路径及其子文件夹添加到MATLAB搜索路径中; 3. `dataName{1} = 'flower17';`: 设置图像数据集的名称,此处为flower17; 4. `for name = 1`: 循环遍历数据集中的每个图像; 5. `load(['./',dataName{name},'_Kmatrix']);`: 加载预处理后的图像数据,其中_Kmatrix是图像的相似性矩阵,保存在.mat文件中; 6. `Y(Y==-1)=2;`: 将标签中的-1替换为2,以便后续处理; 7. `numclass = length(unique(Y));`: 计算图像数据集中的类别数; 8. `numker = size(KH,3); num = size(KH,1);`: 计算图像相似性矩阵的大小,其中numker为矩阵的张数,num为矩阵的行数; 9. `KH = remove_large(KH); KH = knorm(KH); KH = kcenter(KH); KH = divide_std(KH);`: 对图像相似性矩阵进行预处理,包括去除异常值、归一化、中心化、标准化等; 10. `options.seuildiffsigma=1e-4;`: 设置图最小最大化算法的参数,即权重变化的停止条件; 11. `options.goldensearch_deltmax=1e-1; options.numericalprecision=1e-16;`: 设置算法的一些数值参数,包括黄金分割法的初始精度和权重的数值精度; 12. `options.firstbasevariable='first'; options.nbitermax=500; options.seuil=0; options.seuilitermax=10; options.miniter=0;`: 设置算法的一些参数,包括选择基础变量的方法、最大迭代次数、权重阈值、迭代次数阈值等; 13. `options.threshold = 1e-4;`: 设置算法的收敛阈值; 14. `qnorm = 2;`: 计算范数,一般默认为2; 15. `[S,Sigma,obj] = graph_minmax(KH, options);`: 使用图最小最大化算法对图像相似性矩阵进行聚类,并返回聚类结果; 16. `S1 = (S + S') / 2; D = diag(1 ./ sqrt(sum(S1))); L = D * S1 * D;`: 将聚类结果转化为拉普拉斯矩阵,其中D为度矩阵,S1为对称邻接矩阵; 17. `[H,~] = eigs(L, numclass, 'LA');`: 对拉普拉斯矩阵进行特征值分解,获取特征向量; 18. `res= myNMIACC(H,Y,numclass);`: 计算分类精度; 19. `disp(res);`: 显示分类精度结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值