selenium_Selenium脚本编写技巧和窍门

selenium

selenium

如果您刚刚开始学习Selenium,则以下技巧和窍门将成为您的救星。 这些技巧和窍门具有您可能会忘记的所有基本知识,将帮助您记住所有这些。 您只需浏览一下它们,几秒钟后您就会了解所有内容。 让我们一一看一下所有的技巧和窍门。

  • 创建Webdriver实例的最佳方法

您可以使测试通用。 第一步是通过传递配置文件中的值来初始化浏览器。 您可以将一个键作为浏览器,并将值作为Chrome,Firefox或IE。 然后,您可以根据传递给浏览器的值来初始化浏览器。 让我们看看将要涉及的代码。在此处添加段落文本。

public static WebDriver getBrowser(String browserName)
{
If(driver == null)
{
if(browserName.equals(“firefox”))
{
driver = new FirefoxDriver();
}
else if(browserName.equals(“Chrome”))
{
driver=new ChromeDriver();
}
else if(browserName.contains(“IE”))
{
driver=new InternetExplorerDriver();
}
}
return driver;
}
  • 检查元素是否存在的最佳方法

如果必须检查Web应用程序中是否存在某个元素,则可以通过获取Web元素的大小然后检查它是否大于零来轻松地做到这一点。

布尔值isElementExists = driver.findElements(By.xpath(“”))。size()> 0

  • 如何等待页面完全加载?

有时,页面加载需要一些时间,您必须等待一段时间才能完全加载页面。 为此,您必须首先检查它是否正确装入,然后可以对其进行任何其他操作。 您可以使用Javascriptexecutor检查页面是否已完全加载。

wait.until(new Predicate < WebDriver > () {

@Override

public Boolean waitPageLoaded(WebDriver driver) {

return ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");

}

});
  • 如何使用Selenium Webdriver

有时,在执行过程中截取屏幕截图以了解出了什么问题非常重要。 该死的说要用Selenium来做。 您可以拥有selenium驱动程序,然后将其强制转换为“截屏”界面。 创建它的一个实例,然后使用它来获取屏幕截图。 您可以使用工具包方法.getScreenshotAs,然后可以指定期望屏幕截图采用的格式。

//将屏幕快照存储在当前项目目录中

字符串screenShot = System.getProperty(“ user.dir”)+“ \\ screenshottest.png”;

//广播Webdriver来截取屏幕截图

文件srcFile =(((TakesScreenshot)驱动程序).getScreenshotAs(OutputType.FILE);

//保存屏幕截图

FileUtils.copyFile(srcFile,new File(screenShot));

  • 如何在Selenium Webdriver中获取Web元素HTML源

Selenium WebDriver为您提供了一种名为getAttribute的方法,该方法将允许您获取Web元素的内部HTML。 您可以通过首先获取元素来实现。 之后,您可以使用getAttribute获取Web元素的innerHTML。

字符串html = element.getAttribute(“ innerHTML”);

  • 如何使用选择类选择下拉选项?

在Selenium中,如果遇到任何下拉菜单,则可以使用select类在其中选择任何选项。 您可以通过多种方式选择选项。 其中一些方法包括按文本,索引和值进行选择。

Select drp= new Select(Driver.findElement(By.xpath(“”));

drp.deselectAll();

drp.selectByVisibleText("selectLabel");
  • 如何在Webdriver中刷新网页

如果要刷新页面,则可以使用Selenium Web驱动程序的navigation()方法。 然后,您可以使用refresh()方法实际刷新页面,以便从一开始就初始化所有元素。

driver.navigate()。refresh();

  • 如何使用Selenium Webdriver切换到新选项卡

您可以使用Selenium Webdriver轻松切换到新选项卡。 首先要记住的是使用.getWindowHandles(),然后可以切换到具有所有窗口句柄的数组列表的第一个索引。

ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());

driver.switchTo().window(tabs.get(0));
  • 如何在Webdriver中设置驱动程序可执行路径

对于chrome浏览器,即浏览器,必须查看驱动程序可执行文件的路径。 要设置路径,您必须使用Selenium中的System.setProperty方法。 让我们看看它的外观。

File ieDriverPath = new File("path//iexploredriver.exe");

System.setProperty("webdriver.ie.driver", ieDriverPath.getAbsolutePath());

WebDriver driver = new InternetExplorerDriver();
  • 如何切换到新的弹出窗口?

如果要切换到打开的特定窗口,则可以先getAllWindowHandles(),然后使用driver.switchTo()方法切换。

/ Get the current window handle.

String hBefore = driver.getWindowHandle();

// action which opens lot of windows.

// Switch to new windows.

for(String hNew: driver.getWindowHandles()){

driver.switchTo().window(hNew);

}

// Close all new windows.

driver.close();

// Switch back to first window.

driver.switchTo().window(hBefore);

但是如果万一,您想专门切换到特定窗口。 您可以获取一个Web元素,并在特定窗口中查看它的可见性。 如果存在,则可以切换到它。

/ Get the current window handle.

String hBefore = driver.getWindowHandle();

// Click to open new windows.

// Switch to window which has a webelement attached to it

for(String hNew: driver.getWindowHandles()){

If(driver.findElements(By.xpath(“”)).size()>0)

{

driver.switchTo().window(hNew);

}

}

// Close all new windows.

driver.close();

// Switch back to first window.

driver.switchTo().window(hBefore);
  • 如何单击一个不可见的复选框?

在很多情况下,您想要单击的复选框不可见,很遗憾,您将无法单击该复选框。 您必须先启用它,然后才能实际单击它。 如果您不启用它,则会出现异常,例如“元素当前不可见,因此可能无法与之交互。”

可以使用Java脚本执行器启用它,以便Selenium可以单击它。 代码段如下:

((JavascriptExecutor)driver).executeScript("arguments[0].checked = true;", checkbox);
  • 如何在Selenium Webdriver中进行鼠标悬停动作?

如果要将鼠标悬停在Web元素上,则可以使用Actions()类进行处理。 您可以依次使用函数moveToElemenet(),build()和perform()在Web元素上执行鼠标悬停操作。

Actions action = new Actions(driver);

WebElement item = driver.findElement(By.xpath(""));

action.moveToElement(item).moveToElement(driver.findElement(By.xpath("")) ).click().build().perform();
  • 如何在运行测试脚本之前删除Cookies?

有时在运行测试脚本之前清除所有cookie是非常重要的。 您可以使用driver.manage()的方法DeleteAllCookies函数。

代码片段如下:

this.driver.Manage()。Cookies.DeleteAllCookies();

另外,如果您有一个具有特定名称的cookie,则可以使用以下方法将其删除:manage()类的DeleteCookiesNames。

this.driver.Manage()。Cookies.DeleteCookieNamed(“ CookieName”);

  • 如何在测试脚本中最大化窗口?

有时,您需要以全窗口大小和分辨率测试脚本。 您可以通过使用驱动程序实例的manage()方法轻松完成此操作。 然后,您可以使用window()方法,然后使用maximum()方法将窗口放大到最大大小。

程式码片段如下:

public void MaximizeWindow()

{

this.driver.get(“");

this.driver.Manage().Window().Maximize();

}

因此,您可以遵循一些重要的技巧和提示来运行Selenium测试。 如果您牢记这些,则可以在“自动化测试”中编写脚本时解决大部分问题。 因此,使用它们可以节省您的时间。 祝一切顺利!!

翻译自: https://www.javacodegeeks.com/2019/09/selenium-scripting-tips-tricks.html

selenium

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用命令篇: 1. Open(url) url可以是相对的,也可以是绝对的 如绝对的url:open(http://www.taobao.com/) 相对的url:open("/search?q=’aa’"); 2. Click(locator) click可以单击一个链接,按钮或者单选框复选框等。 Click系列的有:click、clickAt、clickAndWait、clickAtAndWait clickAt(locator,coordstring): coordstring是需要单击的坐标 3. doubleClick(locator) 双击操作,用户与click一致 4. type(locator,value) 可以为指定位置输入指定值,也可以为单选框和复选框按钮赋值,value是选项的值而不是文本内容 5. typeKeys(locator,value) 模拟用户输入的行为,与type不同的是,type是强行赋值,而typeKeys是完全模拟用户操作,一个键一个键敲上去的。当输入框中原来就有值时,使用type会用新值替换旧值,而typeKeys则是在原来值上进行追加。如,原来值为aaa,现在要输入bbb,使用type则最终值为bbb,使用typeKeys则最终值为aaabbb. 6. focus(locator) 将焦点移动到指定的元素上,如果是一个可输入的元素,则将聚焦到输入框 7. select(locator,option) 选择下列框中的选项,option默认为标签label 如selenium.select (“size_select”,”label=small”),id=size_select 8. selenium.goBack()后退 9. highlight(locator)指定元素高亮 10. refresh()刷新当前页面 11. AssertText(locator,pattern) 验证某个元素的文本值是否与预期值一致,locator为元素定位,pattern为预期值 12. AssertAttribute(attributelocator,pattern) 验证某个元素的某个属性值与预期值是否一致,attributelocator为属性定位,pattern为预期值 13.assertEquals(value,selenium.getAttribute(xpath+"@value")) 验证某个元素的属性值或者是文本值是否与预期值一致 14. assertInPara(remark_para_1, getRemark(engine_type)); 一般用于验证url和remark串 15. mouseOver(locator) 将鼠标停留在某个元素上,locator为元素定位。 16. mouseDown(locator)/mouseUp(locator) 用户在某个元素上按下或者释放鼠标。Locator为元素定位 17. keyDown(locator,keysequence)/ keyUp(locator,keysequence) 用户按下或者释放某一个按钮,Locator为元素定位,keysequence为按键对应的ASCII码 18. indexOf:判断两个字符串是否存在包含关系 若x=”abcd”;y=”bc”;则有X.indexOf(y)==0 若不存在包含关系,则X.indexOf(y)==-1 19. System.out.println(value); 可以向屏幕打印出value值,这个value值可以是元素的属性值或者文本值等 20. selenium.getCookie(); 可以取到当前页面的cookie值 21. selenium.deleteCookie(name,path) 删除cookie值中的某个参数,如下: selenium.deleteCookie("_nk_","path=/, domain=.taobao.com, recurse=true"); 删除_nk_参数,path的格式必须指定上面三个字段,path=/表示当前路径,domain=.taobao.com为改cookie所属的域,recurse=true 22. assertValue(locator,pattern) 验证某个可输入元素是否被赋了某个值 23. selenium.close() 关闭浏览器。 24. contextMenu(locator)打开关联的菜单,与右键作用差不多,但是对弹出的菜单selen
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值