本文包含了关于Selenium WebDriver的一系列面试问题及其答案,涉及了Selenium的基本操作、高级功能以及与TestNG的集成等内容。
关于TestNG注解
@Test
、@BeforeSuite
、@AfterSuite
、@BeforeTest
、@AfterTest
、@BeforeClass
、@AfterClass
、@BeforeMethod
、@AfterMethod
:这些注解用于控制测试用例的执行顺序和生命周期。
读取Excel数据
- 如何从Excel文件中读取数据?
FileInputStream fis =newFileInputStream("Excel文件路径");Workbook wb =WorkbookFactory.create(fis);Sheet s = wb.getSheet("sheetName");String value = s.getRow(rowNum).getCell(cellNum).getStringCellValue();
XPath的作用
- XPath是用来在网页上查找WebElement的。它对于识别动态Web元素非常有用。
不同类型的定位符
- Selenium支持八种类型的定位符,这些都是
By
类的静态方法:By.id()
、By.name()
、By.tagName()
、By.className()
、By.linkText()
、By.partialLinkText()
、By.xpath
、By.cssSelector
。
Assert和Verify的区别
Assert
:用于验证结果。如果测试用例失败,则停止执行该测试用例,并将控制权移交给其他测试用例。Verify
:也用于验证结果。如果测试用例失败,则不会停止该测试用例的执行。
替代点击登录按钮的方式
- 如果登录按钮的
type
属性为submit
,可以使用submit()
方法代替点击操作。
验证复选框/单选按钮是否被选中
- 可以使用
isSelected()
方法来验证。driver.findElement(By.xpath("复选框/单选按钮的XPath")).isSelected();
处理Alert弹出窗口
- 要处理Alert弹出窗口,首先需要切换到Alert窗口,然后点击确定或取消,最后将控制权切换回主页面。
Alert alt = driver.switchTo().alert();alt.accept();// 点击确定alt.dismiss();// 点击取消driver.switchTo().defaultContent();// 切换回主页面
启动IE/Chrome浏览器
- 在启动IE或Chrome浏览器之前,需要设置系统属性。
System.setProperty("webdriver.ie.driver","IEDriverServer.exe的路径");WebDriver driver =newInternetExplorerDriver();System.setProperty("webdriver.chrome.driver","ChromeDriver.exe的路径");WebDriver driver =newChromeDriver();
执行右键点击
- 使用
Actions
类来执行右键点击操作。Actions act =newActions(driver);act.moveToElement(webElement).perform();act.contextClick().perform();
执行拖拽和释放
- 使用
Actions
类来执行拖拽和释放操作。Actions act =newActions(driver);WebElement source = driver.findElement(By.xpath("要拖拽的元素XPath"));WebElement target = driver.findElement(By.xpath("放置位置XPath"));act.dragAndDrop(source, target).perform();
方法重载的例子
frame(String)
、frame(int)
、frame(WebElement)
:这些是WebDriver中的方法重载例子。
文件上传
- 上传文件可以使用
sendKeys()
方法。driver.findElement(By.xpath("输入字段XPath")).sendKeys("要上传文件的路径");
点击下拉菜单项
- 如果下拉菜单是由
select
标签创建的,则可以使用Select
类的方法selectByValue()
、selectByIndex()
或selectByVisibleText()
来选择项目。如果不是由select
标签创建的,则可以直接查找该项目的XPath并点击。
模拟浏览器前进和后退
driver.navigate().back();
driver.navigate().forward();
获取当前页面URL
- 使用
driver.getCurrentUrl()
方法。
隐式等待
- 可以使用隐式等待。
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
读写Excel文件
- 读取Excel文件中的数据。
FileInputStream fis =newFileInputStream("Excel文件路径");Workbook wb =WorkbookFactory.create(fis);Sheet s = wb.getSheet("sheetName");String value = s.getRow(rowNum).getCell(cellNum).getStringCellValue();
- 写入Excel文件。
s.getRow(rowNum).getCell(cellNum).setCellValue("要设置的值");FileOutputStream fos =newFileOutputStream("文件路径");wb.write(fos);
获取输入框中输入的文本
- 使用
getAttribute("value")
方法。String typedText = driver.findElement(By.xpath("输入框XPath")).getAttribute("value");
WebDriver中遇到的不同异常
ElementNotVisibleException
、ElementNotSelectableException
、NoAlertPresentException
、NoSuchAttributeException
、NoSuchWindowException
、TimeoutException
、WebDriverException
等。
清除输入框中的内容
- 使用
clear()
方法。driver.findElement(By.xpath("输入框XPath")).clear();
这些面试问题和答案涵盖了Selenium WebDriver的一些基本和进阶操作,有助于准备Selenium相关的技术面试。
本文转载自: https://blog.csdn.net/TalorSwfit20111208/article/details/142071155
版权归原作者 知识的宝藏 所有, 如有侵权,请联系我们删除。
版权归原作者 知识的宝藏 所有, 如有侵权,请联系我们删除。