第一个testcase涉及到的知识内容:
1、唤起浏览器:"""这里学习内容: 如何唤起浏览器 打开指定网址 刷新页面的方法refresh() 查找指定的元素 模拟键盘输入文本并进行回车操作 """
from selenium import webdriver
driver = webdriver.Chrome()
driver.get_url('https://juejin.cn/')
driver.quit()
根据掘金上的教程,安装了selenium和对应的Chromedriver的版本,直接在pycharm里run,可以唤起浏览器,但是无法将url传到浏览器内进行打开,有一段这个报错
Traceback (most recent call last):
File "/Users/bytedance/PycharmProjects/pythonProject/venv/test.py", line 4, in
driver.get_url('https://juejin.cn/')
AttributeError: 'WebDriver' object has no attribute 'get_url'
找到了这个报错的原因,是因为driver.get()而不是driver.get_url()用错了方法导致的。现在可以正常进入掘金首页了。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://juejin.cn/')
# 退出浏览器
driver.quit()
【这里是第1个演示视频】
2、刷新页面方法 refresh()接着学习刷新页面的方法refresh(),这里需要加time.sleep()——这是用来做等待加载的一种方法,比较笨,但是目前来讲是最好用的一种,主要是有些操作比较快,会继续下一步,如果此时需要点击的按钮或者检查的文字还没有加载出来,直接进行查询、点击的话,会直接中断整个流程,并引入找不到元素的报错提示。
在页面顶部加上import time就可以正常使用time.sleep()这个方法了。
注意:里面的数字是秒级别的,不需要加引号。
接着找到搜索框的元素,并输入想查的信息,回车完成搜索整个步骤静待结果
3、找到搜索框的元素这里我们要先查看页面的element,找到搜索框的element,找到后先将xpath路径copy下来:
//*[@id="juejin"]/div[1]/div/header/div/nav/ul/li[2]/ul/li[1]/form/input
【这里是第2个演示视频】
此时我们看一下这个元素里都有什么
目前这行element里有东西的就是typemaxlengthplaceholderclass这几个,按照元素定位的方法选择的话,只有xpath和class_name可以选用。
需要注意的是,前端页面的控件是有可变的不确定性,一般尽量不要使用xpath这种路径进行元素定位,除非走投无路QAQ
先来试试class_name是否能用,好的,实验证明不能用,看看这一串儿的报错。看来只有xpath路径这一种选择了。
【这里是第3个演示视频】
Traceback (most recent call last):
File "/Users/bytedance/PycharmProjects/pythonProject/venv/test.py", line 16, in
driver.find_elements_by_class_name("search-input").send_keys("测试自动化")
AttributeError: 'list' object has no attribute 'send_keys'
xpath直接copy下来的路径是比较长的,前面已经copy下来了,这时候我们去页面寻找最短的绝对路径的办法
//input
注意:视频最后的placeholder是用来做精准定位的,不过这里的搜索框是动态加载元素,不适用,直接用input就能定位唯一值就不用写里面的部分了,当然那样写运用到别的地方定位是可以适用的。
4、模拟键盘输入并回车定位元素后,需要适用模拟键盘的功能,此时需要在订单引入键盘相关的包
from selenium.webdriver.common.keys import Keys
这时候我们就可以对搜索框进入输入并回车的操作了。
# 使用xpath找到一个最短的唯一绝对路径
driver.find_element_by_xpath('//input').send_keys("测试自动化")
driver.find_element_by_xpath('//input').send_keys(Keys.ENTER)
# 退出浏览器
driver.quit()
第一个testcase需要学习的内容就结束了,别忘记了最后需要加上quit()方法关闭浏览器哦~
【这里是第4个演示视频】
本文涉及4个动态视频演示,由于CSDN不是很方便上传,可以移步到同步更新的微信公众号上查阅。
测试内容同步微信公众号更新,可扫描二维码关注不定期的更新推送。



