定位UI元素 (WebElements)有如下方法:
find_element_by_id
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector
在已经用selenium打开浏览器的基础上:
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/")
- 用id选择
element = browser.find_element_by_id('kw')
- 用class name
tools = browser.find_element_by_class_name('tools')
- 用Tag Name
span = browser.find_element_by_tag_name('span')
更详细参考https://www.jianshu.com/p/6c82c965c014
接下来实战一下制作一个自动登陆。
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("https://e.buaa.edu.cn/users/sign_in")
这一段是实现用selenium打开我们的登陆界面
按f12查看网页源码,选择元素,首先选择账号
这里就被选中了,右键这一段源码,选择复制为selector,然后在代码中使用css选择器选中这个输入框
user_name=browser.find_element_by_css_selector('#user_login')
填写用户名
user_name.send_keys(u'xxx')
接下来,和上面步骤一样,输密码
user_pwd = browser.find_element_by_css_selector('#user_password')
user_pwd.send_keys(u'xxx')
然后点击登录按钮
from selenium.webdriver import ActionChains
login_button = browser.find_element_by_css_selector('#login-form > div.col-md-6.col-md-offset-6.login-btn > input')
ActionChains(browser).move_to_element(login_button).click(login_button).perform()
这样就登进来啦
类似的,可以写一个脚本自动连校园网WiFi啊,写一个自动评教的程序啊,批量下载课程资源,好像都可以搞了。
自动登录的完整代码在这里
from selenium import webdriver
from selenium.webdriver import ActionChains
browser = webdriver.Chrome()
browser.get("https://e.buaa.edu.cn/users/sign_in")
user_name=browser.find_element_by_css_selector('#user_login')
user_name.send_keys(u'xxx')
user_pwd = browser.find_element_by_css_selector('#user_password')
user_pwd.send_keys(u'xxx')
login_button = browser.find_element_by_css_selector('#login-form > div.col-md-6.col-md-offset-6.login-btn > input')
ActionChains(browser).move_to_element(login_button).click(login_button).perform()