- css_selector定位语法:
driver.find_element(By.CSS_SELECTOR, ”#kw ”)(“选择器定位策略”)
- 解释说明:css可以通过元素的id、class、标签直接定位
若用id定位,则用#。class定位,用.(一个点)
上图是百度搜索框的HTML代码:
通过css selector定位有如下三种常规方式:
find_element(By.CSS_SELECTOR,"#kw") (#表示通过id定位)
(css_selector通过id定位练习截图)
find_element(By.CSS_SELECTOR,".s_ipt") (. 表示通过class定位)
(CSS_selector通过class定位练习截图)
find_element(By.CSS_SELECTOR,"标签名“”) 其实通过标签名来定位元素,有很大局限性的,因为一个页面中,很可能存在标签名的重复,所以无法很精确的定位。
2.通过 标签+属性 即 标签名[属性名=属性值]。
driver.find_element(By.CSS_SELECTOR,"input[autocomplete=off]").send_keys("网易云音乐")
二、selenium复数元素定位法:通过查看该链接了解
Selenium之鼠标模拟操作(学习参考)
首先要导入包:
from selenium.webdriver.common.action_chains import ActionChans
一、全局鼠标操作语法步骤:
第一步:初始化ActionChians类,actions=ActionChains(driver)
第二步:找到要操作的元素
find_element
第三步:调用鼠标操作方法
avtions.move_to_element(element)
第四步:执行鼠标操作
actions.perform()
- ActionChains类常用方法
- click_and_hold(on_element=None):单击鼠标左键,不松开
- context_click(on_element=None):点击鼠标右键
- double_click(on_element=None):双击鼠标左键
- drag_and_drop(source,target):拖拽到某个元素然后松开
Tips:模拟鼠标拖拽动作,选定拖动源元素放到目标元素然后松开。
补充:
源元素:source=driver.find_element_by_id(xxx)
目标元素:target=driver.find_element_by_id(xxx)
调用方法: action.drag_and_drop(source,target).perform()
- move_by_offset(xoffest,yoffest):鼠标从当前位置移动到某个坐标
- move_by_element(to_element):鼠标移动到某个元素
release(on_element=None):在元素上释放按住的鼠标按钮,与click_and_hold(on_element)点击鼠标左键不松开结合使用。(如果有鼠标按下的操作需要通过release()方法释放鼠标)
Selenium键盘操作(学习链接)
keys类和send_keys()方法
- 在所有的键盘操作当中都是通过sent_key()里面的参数实现的。在使用键盘按键方法需要先导入Keys包:
from selenium.webdriver.common.keys import Keys
注意:Keys作为类名,类属性名使用大写字母,该类的属性被赋予的值为对应键盘的ue编码
ENTER = '\ue007'
Selenium之下拉框处理(学习参考链接)
- 基于Webdriver操作处理下拉框
直接通过定位的方法处理下拉框,只需要定位好,click就可以了,但是这种做法容易出错。
- 通过selenium的Select模块来处理
- 1.导入Select类:
From selenium.webdriver.support.select import Select
2.下拉框操作方法:
Select类提供的下拉框操作的方法有11种,
3.Select的三种返回options信息的方法:
options# 返回select元素所有的options,返回列表。
all_selected_options#返回select元素中所有已选中的选项,返回列表。
first_selected_option#返回select元素中选中的第一项,返回元素。
Tips:这三个函数使用时不用传参,不加()。
- 复选select的情况,select提供了四种取消选中项的方法
deselect_all()#取消所有已选的选项。
deselect_by_index(index)#取消选择索引值为index的选项(索引从零开始)。
deselect_by_value(‘value值’)#取消选择value属性为value的选项。
deselect_by_visible_text(‘text文本’)#取消已选中的文本值text的选项。