参考链接: Python中的工厂方法设计模式
一、问答题
1、自动化代码中,用到了哪些设计模式?
答:自动化代码用到过的设计模式:
①单例设计模式
②工厂模式
③PO设计模式
④数据驱动模式
⑤面向接口编程设计模式
2、什么是Selenium
答:Selenium是一个开源的web自动化测试框架,支持多种编程语言开发自动化测试脚本,支持跨浏览器平台进行测试
3、TestNG中注解有哪些?
答:@Test,@BeforeSuite,@AfterSuite,@BeforeTest,@AfterTest,@BeforeClass,@AfterClass,@BeforeMethod,@AfterMethod,@DataProvider
4、什么是断言?
答:断言Assert用于在代码中验证实际结果是不是符合预期结果,如果测试用例执行失败会抛出异常并提供断言日志
5、TestNG有哪些有点?
答:TestNG的注释非常强大和方便,TestNG允许并行测试,并可以基于group的方式执行测试,还可以生成测试报表,并且报告展示多样化,可在其基础上自行开发测试报告插件以及测试监听器
6、什么是web自动化测试?
答:web自动化测试指的是从UI(用户界面)层面进行的自动化测试,测试人员通过编程自动化程度(测试用例脚本)来打开浏览器测试网站的业务逻辑
7、写出Selenium中你最熟悉的接口或类?
答:webDriver、lnternetExplorerDriver、FirefoxDriver、ChromeDriver、WebElement、WebDriverWait、By
8、元素定位类型有哪些?
答:By类一共有8中元素定位方式,他们都是静态方法:
By.id(),By.name(),By.tagName(),By.className(),By.cssSelector(),By.linkText(),By.partialLinText(),By.xpath()
9、登录按钮除了用click方法进行点击以外还有其他方式么?
答:还可以使用submit()方法,前提是input元素的type为submit
10、怎么对含有验证码的功能进行自动化测试的?
答:1)图像识别,技术难度大,效果不佳,不推荐
2)屏蔽验证,邀请开发处理,但在预生产环境或者生产环境不推荐
3)万能验证码,使用一个负责的其他人无法猜到的验证码
11、怎么验证复选按钮是不是被选中?
答:可以使用元素的isSelected()方法,如果返回的是true则说明被选中,否则表明未被选中
12、如何处理alert弹窗?
答:处理alert弹窗首先需要先跳转到alert上,然后在点击确定或者取消按钮,
Alert alet=driver.switchTo().alert();//切换到alert
alert…accept();//确定
alert.dismiss();//取消
13、如何用webdriver进行鼠标右键点击操作?
答:使用Actions类
Actions actions=new Actions(driver);
actions.moveToElement(element).perform();
actions.contextClick().perform();
14、举一个webDriver中方法重载的例子?
答:frame(string nama),frame(int index),
frame(WebElement element)
15、下拉菜单中如何去选择一个菜单项?
答:如果下拉菜单是select标签,使用方法:
selectByValue()或者是selectBylndex()或者selectByVisibleText()即可
如果这个下拉菜单不是通过select标签创建,则直接通过xpath定位元素然后去点击选择