分类
文章

面试中的35个Selenium Webdriver问题

计划进行测试或测试自动化工作的软件测试人员应阅读此文章。我们整理了35个最好的Selenium Webdriver问题,以帮助您在求职面试中取得成功。正如大多数面试官对理想候选人的期望一样,您将找到所有Selenium Webdriver问题的简短答案。在准备完美的面试题方面已经付出了很多努力。

我们相信,此问卷不仅将使您在面对面访问中受益,而且还会使您在电话访问中受益。如今,由于IT公司希望确保应聘者的技术技能,然后再邀请他们进行一对一讨论,因此已经非常流行。另外,没有面试官会只问概念或理论上的问题。他们想通过提出有关该技术的棘手问题来对您进行更深入的测试。那是这35个Selenium Webdriver问题的列表,将帮助您作为破解面试的补充。对详细文章感兴趣的读者可以阅读我们博客中的核心Selenium Webdriver教程

除了这篇文章,您还应该查看此博客上阅读最多的文章,该文章专门针对初学者和有经验的人涵盖了100多个Selenium面试问题 。确保您对Selenium Webdriver概念有足够的了解。

35个Selenium Webdriver问题可以成功面试

  • Selenium Webdriver核心概念
  • CSS / XPath概念
  • TestNG概念

与Selenium Webdriver相关的核心概念问题 。

问:Selenium中提供几种类型的Webdriver API?

回答。以下是可用于浏览器自动化的驱动程序类的列表。

  • AndroidDriver,
  • ChromeDriver,
  • EventFiringWebDriver,
  • FirefoxDriver,
  • HtmlUnitDriver,
  • InternetExplorerDriver,
  • iPhoneDriver,
  • iPhoneSimulatorDriver,
  • RemoteWebDriver。

 

问:如何确定使用Selenium和Webdriver加载页面?

回答。在Selenium中,您可以使用以下代码行来检查是否成功加载了网页。最好的方法是从页面中选择一个元素,并等待其变为可单击状态。

selenium.waitForPageToLoad("5000");
// Or
while (!(selenium.isElementPresent("any page element ")==true)) {
  selenium.setSpeed("5");
  Thread.sleep(5);
}

下面是实现相同目标的Webdriver特定代码。

WebDriverWait check = new WebDriverWait(driver, 100);
check.until(ExpectedConditions.anyElement(By.id(id)));

 

问:如何在Selenium Webdriver项目中启动批处理文件?

回答。通常在测试套件中运行批处理文件或可执行文件,以在启动自动化之前设置先决条件。为此,您可以使用以下Java代码。

Process batch = Runtime.getRuntime.exec("path of the batch file");
batch.waitFor();

 

问:如何在Selenium WebDriver中读取JavaScript变量?

回答。从Selenium Webdriver测试脚本访问任何JavaScript变量都很容易。只是您需要使用下面的Java代码段。

// Initialize the JS object.
JavascriptExecutor JS = (JavascriptExecutor) webdriver;
// Get the current site title.
String sitetitle = (String)JS.executeScript("return document.title");
System.out.println("My Site Title: " + sitetitle);

 

问:如何从命令行运行Selenium IDE测试套件?

回答。我们已经给出了在下一行运行SIDE测试套件的命令。

Java -jar "C:Selenium Webdriver Questionsselenium-server-standalone-2.33.0.jar" -htmlSuite "*firefox" "http://www.google.com" " "C:Selenium Webdriver QuestionsSeleniumSuite.HTML"

 

问:如何从命令行运行Selenium Webdriver测试?

回答。我们可以使用以下命令运行任何用Java编写的Selenium Webdriver测试。

java -classpath ".;selenium-server-standalone-2.33.0.jar" SampleClass

 

问:您在Selenium Webdriver中面临哪些不同的例外?

回答。

  • WebDriverException,
  • NoAlertPresentException,
  • NoSuchWindowException,
  • NoSuchElementException,
  • TimeoutException。

 

问:发生异常时,如何自动单击屏幕截图?

回答。为此,您将必须使用< EventFiringWebDriver >类,并且需要实现< WebDriverEventListener >接口的< onException >方法。请参见下面给出的代码示例。

WebDriver browser = new FirefoxDriver();

EventFiringWebDriver eventDriver = new EventFiringWebDriver(browser).register(new AbstractWebDriverEventListener() {

  @Override
  public void onException(Throwable throwable, WebDriver browser) {

    // Take the screenshot using the Webdriver.
    File screen = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

    // Now you can copy the screenshot somewhere on your system.
    FileUtils.copyFile(screen, new File("c:Selenium Testing Questionsscreen.png"));
  }
});

try {

  eventDriver.findElement(By.id("test"));
  fail("Caught the Expected exception."); // Intentionally causing the exception for demo.

} catch (NoSuchElementException e) {

  // Triggering point for the <onException> event.
}

 

问:如何使用Selenium Webdriver选择任何特定的文本?

回答。乍一看似乎很容易,但是您需要做更多的工作才能实现这一目标。

driver.get("/");

WebElement item = driver.findElement(By.xpath("//p[contains(text(),'Selenium webdriver quesions')]"));

Actions dummy = new Actions(driver);

dummy.doubleClick(item).build().perform();

 

问:举一个在Selenium WebDriver中执行拖放操作的示例吗?

回答。是的,我们可以使用Advanced User Interactions API在Selenium Webdriver项目中执行拖放操作。

代码示例:

Actions act = new Actions(driver);

act.dragAndDrop(source_locator, target_locator).build().perform();

//Or you can use the below code style.

(new Actions(driver)).dragAndDrop(source_locator, target_locator).perform();

 

问:如何在不调用sendKeys()的情况下填写文本字段?

回答。它比sendKeys()方法要慢一点,但是我们确实可以在文本字段中键入内容。请参阅下面给出的Java代码。

JavascriptExecutor JS = (JavascriptExecutor)webdriver;

JS.executeScript("document.getElementById(User').value='admin@testmail.com'");

JS.executeScript("document.getElementById('Pass').value='######'");

 

问:如何检查复选框/单选按钮的状态?

回答。我们可以调用isSelected()方法来测试这些元素的状态。

示例代码:

boolean test = driver.findElement(By.xpath("checkbox/radio button XPath")).isSelected();

 

问:如何处理Selenium Webdriver中的警报弹出窗口?

回答。首先,您必须将控件切换到弹出窗口,然后按确定或取消按钮。之后,返回到源页面屏幕。

代码示例:

String srcPage = driver.getWindowHandle();

Alert pop = driver.switchTo().alert(); // shift control to the alert popup.

pop.accept(); // click on ok button.

pop.dismiss(); // click on cancel button.

// Move the control back to source page.

driver.switchTo().window(srcPage);  // move back to the source page.

 

问:启动IE / Chrome浏览器的过程是什么?

回答。如果要启动浏览器,则只需如下所述设置系统属性。

// For the IE web browser.

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

WebDriver driver = new InternetExplorerDriver();

// For the Chrome web browser.

System.setProperty("webdriver.chrome.driver","chrome.exe file path");

WebDriver driver = new ChromeDriver();

 

问:如何模拟WebDriver中的右键单击操作?

回答。您可以使用Actions类功能。

Actions test = new Actions(driver); // Here, driver is the object of WebDriver class.

test.moveToElement(element).perform();

test.contextClick().perform();

 

问:如何从下拉菜单中选择菜单项?

回答。可能存在以下两种情况。

  • 如果菜单使用的是< select >标记,则可以调用Select类的< selectByValue()>或<selectByIndex()>或<selectByVisibleText()>方法。
  • 如果菜单不使用< select >标记,则只需找到该元素的XPath并对其选择执行单击操作。

 

问:什么是FirefoxDriver,类或接口?它实现了哪个接口?

回答。FirefoxDriver是一个Java类,它实现了< WebDriver >接口。它包含< WebDriver >界面中所有可用方法的实现。

 

问:Webdriver超级接口的名称是什么?

回答。SearchContext。

 

问:close()和quit()方法之间的主要区别是什么?

回答。

close()-关闭当前活动的浏览器窗口。

quit()-它将关闭所有打开的浏览器窗口和浏览器本身。

 

问:检查网页上突出显示的文本的最佳方法是什么?

回答。使用以下代码来验证网页上某个元素的突出显示的文本。

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

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

System.out.println(clr);

System.out.println(bkclr);

 

问:如何使用JavaScript中的Selenium变量,即”size”?

回答。 $ {size}

 

问:在日志文件中显示变量值的Selenese命令是什么?

回答。回声()

 

CSS / XPath相关的Selenium Webdriver问题。

问:如何区分绝对XPath和相对XPath?

回答。

单斜杠”/”表示绝对XPath。

双斜杠”//”表示相对的XPath。

 

问:通过CSS类查找元素的方法有哪些?

回答。假设CSS类的名称为< MyTest >。然后,查找元素的最简单方法如下。

//*[contains(@class, ‘MyTest')]

如果您想进行精确比较以避免匹配”OhhMyTest”或”MyTesting”之类的文本,请使用此选项。

//*[contains(concat(' ', @class, ' '), ' MyTest ')]

您甚至可以使用<normalize-space>函数删除任何前导或尾随空格。

//*[contains(concat(' ', normalize-space(@class), ' '), 'MyTest ')]

 

问:如何使用XPath指定子元素?

回答。

//div/a

 

问:如何使用CSS指定子元素?

回答。

css=div > a

 

问:如何使用XPath标识子元素?

回答。

//div//a

 

问:如何使用CSS识别子元素?

回答。

css=div a

 

问:如何使用CSS访问元素ID?

回答。

css=div#sample a

 

问:您将如何到达下一个兄弟姐妹?

回答。您可以尝试此代码。

tr/td[@class='user’]/following-sibling::td

或者,您可以使用以下代码。

tr[td[@class=’user'] ='age']/td[@class='weight']

 

TestNG Selenium Webdriver问题。

问:您在testng时间测试中使用的时间单位是什么?

回答。我们使用毫秒作为@Test@TestSuite方法中的时间单位。

 

问:@Test方法中优先级的用途是什么?如何设置优先级?

回答。我们在@Test带注释的方法中定义优先级,以设置测试执行的顺序。请检查以下示例。

@Test1(priority=0)
@Test2(priority=2)
@Test3(priority=1)

上面的测试将按以下顺序运行。

Test1 => Test3 => Test2

 

问:在TestNG 生成报告的两种不同方式什么?

回答。有两种使用Test NG生成报告的方法,它们是

  • 侦听器的使用:您可以实现< org.testng。ITestListener >接口及其方法。当测试开始,完成,跳过,通过或失败时,将开始报告。
  • 使用报告者:启用报告的另一种方法是实现< org.testng。记者 >界面。与侦听器界面不同,这里的报告是在整个测试套件结束后才开始的。报告类接收包含整个测试运行信息的对象。

 

问:如何从命令行执行testng测试套件?

回答。我们并不总是需要打开Eclipse来运行TestNG项目,而是尝试使用以下命令。

java -cp "C:Selenium Webdriver Questionstestng lib*;C:Selenium Testing Questionstestngbin" org.testng.TestNG testng.xml

 

问:如何在TestNG中关闭测试输出(生成的测试输出文件夹)?

回答。在Eclipse中,修改启动/运行配置,并添加< -usedefaultlisteners false >选项以禁用测试输出。

现在,我们来总结上面的帖子,其中包括35个最重要的Selenium Webdriver问题,并对内容进行快速回顾。

最终决定– 35个Selenium Webdriver问题

我们试图在这篇文章中提出最相关的Selenium Webdriver问题,但是这个主题属于一个不断发展的主题。因此,总会有改进和增强的范围。我们将继续支持Selenium Webdriver技术中的所有新变化,并将添加越来越多的问题,这些问题可能会增加您的技能并在您面对任何求职面试时增强您的信心。

除了面试问题外,我们还在博客上涵盖了各种Selenium测验 。尝试这些并刷新您的概念。

接下来,我们希望您为我们的知识驱动做出贡献。您可以使用以下所示的共享图标,在朋友之间以及在社交媒体上共享此Selenium Webdriver首要问题列表。

保持学习,

你好W3

发表评论

电子邮件地址不会被公开。 必填项已用*标注