软件测试面试题selenium篇(真实面试经历)

1、怎么定位的、有哪些定位方法
(1)八大定位
id定位 、 class定位、name 定位 、tag link定位、 partial_link定位、tag定位,css选择器 xpath定位
(2)复数定位
比如class,复数定位下标从0开始的,注意是elements
(driver.find_elements(“css selector”,".mnav")[4].click())用来定位第5个元素)
(3)针对iframe的定位
这个主要是看页面中是否带有frame嵌套,如果有,就用这种方式
以loadrunner12自带的webtours为例子,同样要注意下标从0开始
driver.switch_to.frame(1)
driver.switch_to.frame(0)


```python
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import unittest, time, re

class testwebtours(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.verificationErrors = []
        self.accept_next_alert = True
    def test_my(self):
        driver = self.driver
        driver.get("http://127.0.0.1:1080/WebTours/index.htm")
        driver.switch_to.frame(1)
        driver.switch_to.frame(0)
        driver.find_element_by_name("username").click()
        driver.find_element_by_name("username").clear()
   		driver.find_element_by_name("username").send_keys("jojo")
        driver.find_element_by_name("password").click()
        driver.find_element_by_name("password").clear()       driver.find_element_by_name("password").send_keys("bean")
        driver.find_element_by_name("login").click()
if __name__ == "__main__":
    unittest.main()

(4)弹框定位
比如alert的定位,直接接受accept(),直接取消dismiss()
其他的要先获取句柄再选择句柄,然后就可以正常定位弹框上的元素了
(5)验证码定位
这个比较复杂,我记得我用另一个博客写了
(6)上传文件
用input方法写的上传直接给传值,值用文件路径就好了
非input方法写的要借助autoit工具,做一个exe文件用来辅助定位
(7)模拟鼠标或键盘操作的方式
比如模拟鼠标拖动可以定位一些验证码
用键盘操作能代替一些快捷键
(8)下拉框定位
用select()方法
select_by_index # 通过索引定位
select_by_value # 通过value值定位
select_by_visible_text # 通过文本值定位
其他辅助定位的方法
(1)通过js拖动滚动条
(2)操作js来修改元素属性
(3)添加等待(time.sleep)

2、讲一讲上家公司自动化是怎么设计的
我一般回答,用PO模式实现定位和业务用例分离,然后通过htmltestrunner生成测试报告,并通过邮件发送
3、验证码数据存在redis中,怎样绕过验证码
直接读redis数据库
4、隐性等待、显性等待的区别和用法
显性等待:程序每隔x秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException
隐性等待:
设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步.
5、文本怎么用xpath定位
通过xpath定位("//span[atext(),‘文本’]")
6、xpath中/和//的区别
/表示指定路径下的所有符合条件的节点,//表示指定路径下匹配模式的所有节点
上面的答案是我百度的,我观察到的是直接写绝对路径用的都是/,相对路径是//
7、怎样提供脚本稳定性
xpath不要用绝对路径
8、做自动化过程中遇到的最大问题
比如稳定性,比如弄了半天发现工作量很大,还不如用手指点。。。
9、PO 模式有哪三层
基础层、定位层、用例层
10、自动化的数据存储在哪
CSV
11、自动化测试的意义?
回归测试。减少工作量
12、怎么执行的,是放到enkin中还是右键执行
放在jenkin中定时构建
13、写过多少条自动化测试用例
这个看自己
14、driver.quit()和driver.close()的区别
driver.close()关闭当前窗口
driver.quit()退出驱动关闭所有窗口
实际用的话,我总感觉close不太好使,也不知道哪出的幺蛾子

以上问题是自动化测试面试中遇到的,有空补充答案哈~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值