一、demo示例
效果:运行代码后,自动打开谷歌浏览器,浏览器会首先跳转到百度,然后在搜索框中搜索Python,接着跳转到搜索结果页
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import time
def from_baidu_search_python():
try:
# 声明浏览器对象
browser = webdriver.Chrome()
# 打开百度
browser.get("https://www.baidu.com")
# 搜索python,enter键搜索
input = browser.find_element_by_id('kw')
input.send_keys('Python')
input.send_keys(Keys.ENTER)
# 设置超时方式
wait = WebDriverWait(browser,10)
wait.until(EC.presence_of_all_elements_located((By.ID,'content_left')))
print(browser.current_url)
print(browser.get_cookies())
while True:
time.sleep(10)
finally:
browser.close()
from_baidu_search_python()
二、Keys键盘类操作常用方法
导入方法:from selenium.webdriver.common.keys import Keys
send_keys(Keys.BACK_SPACE) 删除键BackSpace
send_keys(Keys.SPACE) 空格键Space
send_keys(Keys.TAB) 制表键Tab
send_keys(Keys.ESPACE) 回退键Esc
send_keys(Keys.ENTER) 回车键Enter
send_keys(Keys.CONTROL,‘a’) 全选Ctrl+A
send_keys(Keys.CONTROL,‘c’) 复制CTRL+C
send_keys(Keys.CONTROL,‘x’) 剪切CTRL+X
send_keys(Keys.CONTROL,‘v’) 粘贴Ctrl+V
send_keys(Keys.F1) 键盘F1
send_keys(Keys.F12) 键盘F12
三、定位节点方法
find_element(s)_by_id()——按id查找
find_element(s)_by_name()——按name值查找
find_element(s)_by_class_name()——按类名查找
find_element(s)_by_tag_name()——按标签名查找
find_element(s)_by_link_text()——此种方法是专门用来定位文本链接的,比如百度首页右上角有“新闻”,“hao123”,“地图”等链接。如:
# 通过link定位"新闻"这个链接并点击
driver.find_element_by_link_text('新闻').click()
find_element(s)_by_partial_link_text()——按部分文本链接名称查找
有时候一个超链接的文本很长很长,我们如果全部输入,既麻烦,又显得代码很不美观,这时候我们就可以只截取一部分字符串,用这种方法模糊匹配了。
find_element(s)_by_xpath()——按xpath方式查找
find_element(s)_by_css_selector()——按css选择器查找
获取节点信息代码示例:
>
from selenium import webdriver
browser = webdriver.Chrome()
url = 'https://www.zhihu.com/explore'
browser.get(url)
logo = browser.find_element_by_id("zh-top-link-logo")
print(logo)
print(logo.get_attribute('class'))
>
from selenium import webdriver
browser = webdriver.Chrome()
url = 'https://www.zhihu.com/explore'
browser.get(url)
input = browser.find_element_by_id("zh-top-add-question")
print(input.text)