Selenium+Java——测试Web端的方法集合(二)

4、输入

//1.输入
driver.findElement(By.xpath("//xpathExpression")).sendKeys("test");
//2.输入
Actions actions = new Actions(driver);
actions.sendKeys("test").perform();
//3.输入
// 创建一个StringSelection对象,用于存储要复制的文本内容
StringSelection selection = new StringSelection("文本");
// 获取系统剪贴板
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();     
// 将StringSelection对象放入剪贴板
clipboard.setContents(selection, null);
// 模拟Ctrl+V操作
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);

5、清空

//1.清空
driver.findElement(By.xpath("//xpathExpression")).clear();
//2.清空
Actions actions = new Actions(driver);
actions.keyDown(Keys.CONTROL).perform();
actions.sendKeys("a").perform();
actions.keyUp(Keys.CONTROL).perform();
actions.sendKeys(Keys.DELETE).perform();
//3.清空
Robot robot=new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_A);
Thread.sleep(200);
robot.keyRelease(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_CONTROL);
Thread.sleep(200);
robot.keyPress(KeyEvent.VK_DELETE);
robot.keyRelease(KeyEvent.VK_DELETE);

6、下拉框选择

import org.openqa.selenium.support.ui.Select;
//1.使用Select类处理普通下拉框
WebElement dropdown = driver.findElement(By.id("dropdownId"));
Select select = new Select(dropdown);
select.selectByVisibleText("Option 1");// 通过可见文本选择选项
select.selectByValue("value1");// 通过值选择选项
select.selectByIndex(2);// 通过索引选择选项
//2.使用WebElement处理自定义下拉框或其他类型的下拉框
driver.findElement(By.id("dropdownId")).click();
driver.findElement(By.xpath("//option[text()='Option 1']")).click();
//3.处理多选下拉框
driver.findElement(By.id("multiDropdownId")).click();
driver.findElement(By.xpath("//option[text()='Option 1']")).click();
driver.findElement(By.xpath("//option[text()='Option 2']")).click();
//4.取消所有已选择的选项
WebElement dropdown = driver.findElement(By.id("dropdownId"));
Select select = new Select(dropdown);
select.deselectAll();
//5.或者取消单个已选择的选项
WebElement option1 = driver.findElement(By.xpath("//option[text()='Option 1']"));
select.deselectByValue(option1.getAttribute("value"));
select.deselectByVisibleText("Option 1");
select.deselectByValue("value1");
select.deselectByIndex(2);
//6.获取所有已选中的选项
WebElement dropdown = driver.findElement(By.id("dropdownId"));
Select select = new Select(dropdown);
List<WebElement> selectedOptions = select.getAllSelectedOptions();
for (WebElement option : selectedOptions) {
    System.out.println("已选中选项:" + option.getText());
}
//7.获取当前被选中的第一个选项
WebElement dropdown = driver.findElement(By.id("dropdownId"));
Select select = new Select(dropdown);
WebElement firstSelectedOption = select.getFirstSelectedOption();
System.out.println("当前被选中的选项:" + firstSelectedOption.getText());
//8.获取被Select对象包装的原始WebElement元素
WebElement dropdown = driver.findElement(By.id("dropdownId"));
Select select = new Select(dropdown);
WebElement wrappedElement = select.getWrappedElement();
String elementId = wrappedElement.getAttribute("id");
System.out.println("下拉框元素的ID:" + elementId);
//9.检查下拉框元素是否支持多选
WebElement dropdown = driver.findElement(By.id("dropdownId"));
Select select = new Select(dropdown);
boolean isMultiple = select.isMultiple();

7、等待

//1.隐式等待(Implicit Wait)
//隐式等待是设置一个全局的等待时间,在查找元素时如果找不到立即返回,并等待指定的时间再进行下一步操作。
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//2.显式等待(Explicit Wait)
//显式等待是在特定条件满足之前等待。可以指定等待的最长时间,以及每隔一段时间检查一次条件是否满足
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("elementId")));
//3.暂停当前线程的执行一段指定的时间
//暂停执行 5 秒钟
 Thread.sleep(5000);

8、悬浮元素

 // 找到需要悬浮的元素
WebElement elementToHover = driver.findElement(By.id("elementId"));
// 创建 Actions 对象
Actions actions = new Actions(driver);
// 将鼠标悬停在该元素上
actions.moveToElement(elementToHover).perform();

9、拖拽元素

//1.拖拽
WebElement sourceElement = driver.findElement(By.id("sourceElementId"));
WebElement targetElement = driver.findElement(By.id("targetElementId"));
Actions actions = new Actions(driver);
actions.dragAndDrop(sourceElement, targetElement).perform();
//2.拖拽,需要拖拽A点和B点的坐标
org.sikuli.script.Screen sikuli = new org.sikuli.script.Screen();
Location from = new Location(Integer.parseInt(locationA_X), Integer,parseInt(locationA_Y));
Location To = new Location(Integer,parseInt(locationB_X), Integer,parseInt(locationB_Y));
sikuli.dragDrop(from, To);
//3.拖拽,需要拖拽A点的图片和B点的图片
org.sikuli.script.Screen sikuli = new org.sikuli.script.Screen();
Match matcheFrom = sikuli.find(imageFromFile);
Match matcheTo = sikuli.find(imageTofile);
Location from = matchefrom.getTarget();
Location To = matcheTo.getTarget();
sikuli.dragDrop(from,To);

如果有写的不对或者有追加的地方欢迎补充私聊

#自动化测试##selenium##测试#
自动化测试学习 文章被收录于专栏

记录工作中的自动化测试学习内容,例如:手机自动化测试学习,web端自动化测试学习等..

全部评论

相关推荐

关于我大学本科四年,想了很多,但还是不知道该怎么动笔&nbsp;“大学四年,是我从懵懂少年走向职场青年的转折期。这一路跌跌撞撞,有迷茫,有遗憾,也有成长和决心。”&nbsp;大一刚进来时仍然有高中那股学习劲,经常一个人去图书馆学高等数学,但后面劲头一过便开始在宿舍开启躺平生活(现在想想那段时间真的很爽,无忧无虑)。由于大一担任班干部,所以经常要跟其他班的班干部交流,在此期间认识了隔壁班的一位女生,短发而很可爱,因为很多团建还有比赛都是我们两班一起参加的,而且我和她都是负责人,所以交集很多,后面慢慢地彼此对产生了好感,所以在大一刚开学的2个月后,我们在一起了,彼此之前都是初恋。但当时我真的是太太太直男了,对感情的想...
真烦好烦真烦:骗哥们可以,别把你自己也骗到了就行。哥们被你骗了真无所谓的,打个哈哈就过了。但希望你打完这段话后擦一下眼角,别让眼泪掉在手机屏幕上了就行。你说的这些话,哥们信一下也是没什么的。还能让你有个心里安慰,但这种话说出来骗骗兄弟就差不多得了,哥们信你一下也不会少块肉,但是你别搞得自己也当真了就行。哥们被你骗一下是真无所谓的,兄弟笑笑也就过去了。真不是哥们想要破你防,你擦擦眼泪好好想想,除了兄弟谁还会信你这些话?
点赞 评论 收藏
分享
头像
04-17 09:29
已编辑
湖南农业大学 后端
睡姿决定发型丫:本硕末9也是0offer,简历挂了挺多,只有淘天 美团 中兴给了面试机会,淘天二面挂,美团一面kpi面,中兴一面感觉也大概率kpi(虽然国企,但一面0技术纯聊天有点离谱吧)
点赞 评论 收藏
分享
05-12 17:28
已编辑
门头沟学院 硬件开发
ldf李鑫:不说公司名祝你以后天天遇到这样的公司
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务