1、Class属性有空格?
Class 属性有空格是多重属性,取其中一个就好了
driver.find_element_by_class_name(“quickdelete-wrap”) # 取class其中一个就行
2、常规操作
# 清空输入框信息
driver.find_element_by_name("email").clear()
# 输入框输入文本信息
driver.find_element_by_name("email").send_keys("adb")
driver.find_element_by_name("password").send_keys("123")
# 输入框输入文本信息
driver.find_element_by_name("email").send_keys("adb")
driver.find_element_by_name("password").send_keys("123")
# 输入框输入文本信息
driver.find_element_by_name("email").send_keys("adb")
driver.find_element_by_name("password").send_keys("123")
3、鼠标事件
鼠标事件:
from selenium.webdriver.common.action_chains import ActionChains
context_click() 右击
double_click() 双击
drag_and_drop(source, target)拖动
move_to_element() 鼠标悬停
4、隐式等待与显式等待
(1)强制等待 sleep(xx)强制让闪电侠等xx时间,不管凹凸曼能不能跟上速度,还是已经提前到了,都必须等xx时间。
(2)隐式等待 implicatly_wait 隐式等待 全局的,不论闪电侠去哪儿,都要等凹凸曼 十分钟,不管是一分钟到了,还是五分钟就到了,此时就走。 如果凹凸曼在规定时间内没到,则闪电侠自己去,那自然就等着凹凸曼给你抛异常吧。
(3)显式等待 WebDriverWait,配合该类的until()和until_not()方法,就能够根据判断条件而进行灵活地等待了。它主要的意思就是:程序每隔xx秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException。
- Selenium可以采取三种等待,最智能的为显性等待WebDriverWait()
- 隐性等待和显性等待同时存在时,取两者中最长的等待时间为有效等待时间
5、xpath 语法总结
xpath 语法内数组从1开始,不是从0开始
a = driver.switch_to_alert()
a = driver.switch_to.alert
a.send_keys(“输入内容”)
time.sleep(2)
a.accept()
Path //*[@id=“result_logo”] 相对路径 //表示相对路径 * 表示标签名
XPath 定位语法更精确,一般不用绝对路径定位
对于这种文本属性,语法:.//*[text()='文本内容']