Selenium常见面试题(一)

问题1) TestNG中使用的注释是什么?

Ans:@Test,@ BeforeSuite,@ AfterSuite,@ BeforeTest,@ AfterTest,@ BeforeClass,@ AfterClass,@ BeforeMethod,@ AfterMethod。

问题2)你如何从excel读取数据?

 

1

2

3

4

5

6

7

FileInputStream fis = new FileInputStream(path of excel file);

 

Workbook wb = WorkbookFactory.create(fis);

 

Sheet s = wb.getSheet(sheetName);

 

String value = s.getRow(rowNum).getCell(cellNum).getStringCellValue();

问题3) xpath有什么用?

Ans-用于在网页中查找WebElement。识别动态Web元素非常有用。

问题4) 什么是不同类型的定位器?

Ans-有8种类型的定位器,它们都是By类的静态方法。

By.id(),By.name(),By.tagName(),By.className(),By.linkText(),By.partialLinkText(),By.xpath,By.cssSelector()。

问题5) Assert和Verify有什么区别?

Ans- Assert-用于验证结果。如果测试用例失败,那么它将停止在那里执行测试用例并将控件移动到其他测试用例。

验证 - 它还用于验证结果。如果测试用例失败,那么它将不会停止执行该测试用例。

问题6) 点击登录按钮的替代方法是什么?

Ans-使用submit()方法,但只有在属性type = submit时才能使用它。

问题7) 如何验证是否选中了复选框/收音机?

Ans-我们可以使用isSelected()方法。

句法 -

 

1

driver.findElement(By.xpath("xpath of the checkbox/radio button")).isSelected();

如果此方法的返回值为true,则检查否则不是。

问题8) 你如何处理警报弹出窗口?

Ans-要处理警报弹出窗口,我们需要先切换控制以警告弹出窗口,然后单击确定或cancle然后将控制移回主页面。

句法-

 

1

2

3

4

5

6

7

8

9

10

11

String mainPage = driver.getWindowHandle();

 

Alert alt = driver.switchTo().alert(); // to move control to alert popup

 

alt.accept(); // to click on ok.

 

alt.dismiss(); // to click on cancel.

 

//Then move the control back to main web page-

 

driver.switchTo().window(mainPage);to switch back to main page.

问题9) 你如何推出IE / chrome浏览器?

Ans-在启动IE或Chrome浏览器之前,我们需要设置System属性。

 

1

2

3

4

5

//To open IE browser

 

System.setProperty(webdriver.ie.driver,path of the iedriver.exe file);

 

WebDriver driver = new InternetExplorerDriver();

 

 

1

2

3

//To open Chrome browser → System.setProperty(“webdriver.chrome.driver”,”path of the chromeDriver.exe file ”);

 

WebDriver driver = new ChromeDriver();

问题10) 如何使用WebDriver执行右键单击?

Ans-使用Actions类

 

1

2

3

4

5

Actions act = new Actions(driver); // where driver is WebDriver type

 

act.moveToElement(webElement).perform();

 

act.contextClick().perform();

问题11) 如何使用WebDriver执行拖放操作?

Ans-使用Action类

 

1

2

3

4

5

6

7

Actions act = new Actions(driver);

 

WebElement source = driver.findElement(By.xpath(-----)); //source ele which you want to drag

 

WebElement target = driver.findElement(By.xpath(-----)); //target where you want to drop

 

act.dragAndDrop(source,target).perform();

问题12) 给出WebDriver中方法重载的例子。

Ans- frame(字符串),frame(int),frame(WebElement)。

问题13) 你如何上传文件?

Ans-要上传文件,我们可以使用sendKeys()方法。

 

1

driver.findElement(By.xpath(input field)).sendKeys(path of the file which u want to upload);

问题14) 如何点击下拉菜单中的菜单项?

Ans-如果使用select标签创建了该菜单,那么我们可以使用方法selectByValue()或selectByIndex()或selectByVisibleText()。这些是Select类的方法。

如果尚未使用select标签创建菜单,那么我们可以简单地找到该元素的xpath并单击它以进行选择。

问题15) 你如何模拟浏览器的前后移动?

 

1

2

3

driver.navigate().back();

 

driver.navigate().forward();

问题16)你如何获得当前页面的URL?

 

1

driver.getCurrentUrl();

问题17) '/'和'//'之间有什么区别?

Ans- // - 用于搜索整个结构。

/ - 它用于识别直接孩子。

问题18) findElement和findElements有什么区别?

Ans-这两种方法都是WebDriver接口的抽象方法,用于在网页中查找WebElement。

findElement() - 它用于查找一个web元素。它只返回一个WebElement类型。

findElements() - 它用于查找多个Web元素。它返回WebElements列表。

问题19) 如何在WebDriver中实现同步?

Ans-我们可以使用隐式等待。

语法 - driver.manage()。timeouts()。implicitlyWait(10,TimeUnit.SECONDS);

如果执行驱动程序没有立即在页面中找到元素,它将等待10秒。此代码将自动附加到脚本的每一行。每次都不需要写。打开浏览器后只需编写一次。

问题20) 通过Selenium编写Excel读写代码?

 

1

2

3

4

5

6

7

8

9

10

11

12

13

FileInputStream fis = new FileInputStream(path of excel file);

 

Workbook wb = WorkbookFactory.create(fis);

 

Sheet s = wb.getSheet("sheetName");

 

String value = s.getRow(rowNum).getCell(cellNum).getStringCellValue(); // read data

 

s.getRow(rowNum).getCell(cellNum).setCellValue("value to be set"); //write data

 

FileOutputStream fos = new FileOutputStream(path of file);

 

wb.write(fos); //save file

问题21) 如何从文本框中获取打字文本?

通过将arg作为值传递来使用getAttribute(“value”)方法。

 

1

String typedText = driver.findElement(By.xpath("xpath of box")).getAttribute("value"));

问题22) 使用WebDriver时有哪些不同的例外?

Ans- ElementNotVisibleException,ElementNotSelectableException,NoAlertPresentException,NoSuchAttributeException,NoSuchWindowException,TimeoutException,WebDriverException等。

问题23) WebDriver支持哪些语言?

Ans- Python,Ruby,C#和Java都直接由开发团队支持。还有PHP和Perl的webdriver实现。

问题24) 你如何清除硒中文本框的内容?

Ans-使用clear()方法。

 

1

driver.findElement(By.xpath("xpath of box")).clear();

问题25) 什么是框架?

Ans-一个框架是一套有助于的自动化指南

保持测试的一致性,改进测试结构,最小化代码使用,减少代码维护,提高可重用性,非技术测试人员可以参与代码,可以减少使用工具的培训期,适当时涉及数据。

软件自动化测试中使用了五种类型的框架:

1数据驱动自动化框架

2方法驱动的自动化框架

3模块化自动化框架

4关键字驱动自动化框架

5-Hybrid Automation Framework,它基本上结合了不同的框架。(1 + 2 + 3)。

问题26) 运行selenium webdriver的先决条件是什么?

Ans- JDK,Eclipse,WebDriver(selenium独立jar文件),浏览器,待测试应用程序。

问题27) 硒webdriver的优点是什么?

答案:它支持大多数浏览器,如Firefox,IE,Chrome,Safari,Opera等。

b)它支持大多数语言,如Java,Python,Ruby,C#等。

b)在执行测试脚本之前不需要启动服务器。

c)它具有实际的核心API,它具有多种语言的绑定。

d)支持移动鼠标光标。

e)它支持测试iphone / Android应用程序。

问题28) 什么是WebDriverBackedSelenium?

Ans- WebDriverBackedSelenium是一种类名,我们可以在其中为它创建一个对象,如下所示:

 

1

Selenium wbdriver= new WebDriverBackedSelenium(WebDriver object name, "URL path of website")

这个的主要用途是当我们想要使用WebDriver和Selenium RC编写代码时,我们必须使用上面创建的对象来使用selenium命令。

问题29) 如何在webdriver中调用应用程序?

 

1

driver.get(url); or driver.navigate().to(url);

问题30) 什么是Selenium Grid?

Ans- Selenium-Grid允许您在不同的机器上并行地针对不同的浏览器运行测试。也就是说,针对不同的计算机,不同的浏览器和操作系统同时运行多个测试。从本质上讲,Selenium-Grid支持分布式测试执行。它允许在分布式测试执行环境中运行测试。

问题31) 如何获取页面上的帧数?

 

1

2

3

List <WebElement> framesList = driver.findElements(By.xpath("//iframe"));

 

int numOfFrames = frameList.size();

问题32) 你如何模拟向下滚动动作?

Ans-使用java脚本向下滚动 -

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

JavascriptExecutor jsx = (JavascriptExecutor)driver;

 

jsx.executeScript("window.scrollBy(0,4500)", ""); //scroll down, value 4500 you can change as per your req

 

jsx.executeScript("window.scrollBy(450,0)", ""); //scroll up

 

ex-

 

public class ScrollDown {

 

public static void main(String[] args) throws InterruptedException {

 

WebDriver driver = new FirefoxDriver();

 

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

 

driver.get("http://www.flipkart.com/womens-clothing/pr?sid=2oq,c1r&otracker=hp_nmenu_sub_women_1_View%20all");

 

driver.manage().window().maximize();

 

JavascriptExecutor jsx = (JavascriptExecutor)driver;

 

jsx.executeScript("window.scrollBy(0,4500)", ""); //scroll down

 

Thread.sleep(3000);

 

jsx.executeScript("window.scrollBy(450,0)", ""); //scroll up

 

}

 

}

 

问题33)当我们使用testng时,我们必须在.bat文件中写入以执行selenium项目的命令行是什么?

Ans- java -cp bin; jars / * org.testng.TestNG testng.xml

问题34) 使用WebDriver时要导入的包是哪个?

Ans- org.openqa.selenium

问题35) 如何检查网页上是否有元素可见?

Ans-使用isDisplayed()方法。该方法的返回类型是boolean。因此,如果它返回true,则元素是可见的,否则不可见。

 

1

driver.findElement(By.xpath("xpath of elemnt")).isDisplayed();

 

问题36) 如何检查页面上是否启用了按钮?

Ans-使用isEnabled()方法。该方法的返回类型是boolean。因此,如果它返回true,则启用按钮,否则不启用。

 

1

driver.findElement(By.xpath("xpath of button")).isEnabled();

 

问题37) 如何检查页面上是否突出显示文本?

答 - 识别某个字段的天气颜色是否不同 -

 

1

2

3

4

5

6

7

String color = driver.findElement(By.xpath("//a[text()='Shop']")).getCssValue("color");

 

String backcolor = driver.findElement(By.xpath("//a[text()='Shop']")).getCssValue("background-color");

 

System.out.println(color);

 

System.out.println(backcolor);

这里如果颜色和背面颜色不同,那么这意味着元素具有不同的颜色。

问题38) 如何选中复选框或单选按钮?

Ans-使用isSelected()方法进行识别。该方法的返回类型是boolean。因此,如果它返回true,则选择按钮,否则不启用。

 

1

driver.findElement(By.xpath("xpath of button")).isSelected();

 

问题39) 如何获得页面的标题?

Ans-使用getTitle()方法。

 

1

Syntax- driver.getTitle();

 

问题40) 你如何获得文本框的宽度?

 

 

1

2

3

driver.findElement(By.xpath(xpath of textbox)).getSize().getWidth();

 

driver.findElement(By.xpath(xpath of textbox)).getSize().getHeight();

 

问题41) 你如何获得网络元素的属性?

Ans- driver.getElement(By.tagName(“img”))。getAttribute(“src”)将为您提供此标记的src属性。同样,您可以获取title,alt等属性的值。

类似地,您可以使用getCssValue(“some somepepe name”)获取任何标记的CSS属性。

问题42) 如何检查文本是否加下划线?

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

Ans- Identify by getCssValue(border-bottom) or sometime getCssValue(text-decoration) method if the

 

cssValue is 'underline' for that WebElement or not.

 

ex- This is for when moving cursor over element that is going to be underlined or not-

 

public class UnderLine {

 

public static void main(String[] args) {

 

WebDriver driver = new FirefoxDriver();

 

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

 

driver.get("https://www.google.co.in/?gfe_rd=ctrl&ei=bXAwU8jYN4W6iAf8zIDgDA&gws_rd=cr");

 

String cssValue= driver.findElement(By.xpath("//a[text()='Hindi']")).getCssValue("text-decoration");

 

System.out.println("value"+cssValue);

 

Actions act = new Actions(driver);

 

act.moveToElement(driver.findElement(By.xpath("//a[text()='Hindi']"))).perform();

 

String cssValue1= driver.findElement(By.xpath("//a[text()='Hindi']")).getCssValue("text-decoration");

 

System.out.println("value over"+cssValue1);

 

driver.close();

 

}

 

}

 

问题43) 如何使用selenium web驱动程序更改网页上的URL?

 

 

1

2

3

driver.get(url1);

 

driver.get(url2);

 

问题44) 如何将鼠标悬停在元素上?

 

 

1

2

3

Actions act = new Actions(driver);

 

act.moveToElement(webelement); //webelement on which you want to move cursor

 

问题45) getOptions()方法有什么用?

Ans- getOptions()用于从下拉列表中获取所选选项。

问题46) deSelectAll()方法有什么用?

Ans-用于取消选择从下拉列表中选择的所有选项。

问题47) WebElement是一个接口还是一个类?

Ans- WebDriver是一个界面。

问题48) FirefoxDriver是类还是接口,它从哪里继承?

Ans- FirefoxDriver是一个类。它实现了WebDriver接口的所有方法。

问题49) 哪个是webdriver的超级界面?

Ans- SearchContext。

问题50) b / w close()和quit()有什么区别?

Ans- close() - 它将关闭控件所在的浏览器。

quit() - 它将关闭WebDriver打开的所有浏览器。

  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值