selenium学习
声明浏览器对象
ubuntu下打不开chrome浏览器,重新安装了chromium-browser,并使用下面的声明语句
1 | browser = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver") |
方案来源https://stackoverflow.com/questions/22476112/using-chromedriver-with-selenium-python-ubuntu
貌似添加chrome的path也能解决
获取元素
可以通过id,name,classname,xpath,css_selector等获得
两种写法:
1 | from selenium.webdriver.common.by import By |
或者
1 | elem = browser.find_element_by_id("kw") |
获取多个元素
就是element和elements的小区别,返回一个列表
元素交互
先获取特定元素,再对其调用交互
input.send_keys(“xxx”) 为元素赋值”xxx“
button.click() 点击button元素
交互动作
将动作附加到动作链中执行,比如可以实现元素拖拽、点击、双击等
1 | from selenium.webdriver import ActionChains |
执行JavaScript
browser.execute_script(script_name)
获取属性值
1 | elem.get_attribute('xxx') |
获取文本值
elem.text
获取ID、位置、标签名、大小
elem.id
elem.location
elem.tag_name
elem.size
Frame
提取元素时,要注意frame的切换
位于子frame时,找不到父frame中的元素
等待
隐式等待
显式等待
前进后退
1 | brower.back() |
Cookies
1 | browser.get_cookies() |
选项卡管理
1 | #打开一个页面,新建一个选项卡,切换回页面 |
异常
超时、元素不存在等