Selenium
一、WebDriver的常用方法
方法 | 描述 |
---|
get() | 在浏览器中打开网址 |
maximize_window() | 最大化浏览器窗口 |
minimize_window() | 最小化浏览器窗口 |
set_window_size(长, 宽) | 设置窗口大小,参数为像素 |
back() | 后退 |
forward() | 前进 |
refresh() | 刷新 |
close() | 关闭当前窗口 |
quit() | 关闭所有窗口 |
from selenium import webdriver
wd = webdriver.Edge()
print(wd)
wd.get('https://www.baidu.com/')
wd.maximize_window()
time.sleep(2)
wd.set_window_size(1024, 768)
time.sleep(3)
we = wd.find_element_by_css_selector('#kw')
print(we)
we.send_keys('Python')
wd.find_element_by_css_selector('#su').click()
time.sleep(2)
wd.back()
time.sleep(2)
wd.forward()
time.sleep(2)
wd.refresh()
打开百度首页之后 ,再点击页面中“学术”按钮。
使用close()关闭窗口,观察效果。(句柄)
""" 需求:
打开百度首页之后 ,再点击页面中“学术”按钮。
使用close()关闭窗口,观察效果。(句柄)
"""
print(wd.current_window_handle)
wd.find_element_by_css_selector('#s-top-left > a:nth-child(7)').click()
print(wd.current_window_handle)
wd.close()
wd.quit()
二、定位元素的方法
定位方式 | 描述 |
---|
find_element_by_id | 通过元素的id 来定位,id 是唯一的,较常用 |
find_element_by_name | 通过元素的name属性来定位,name可能不唯一 |
find_element_by_class_name | 通过class属性定位元素,一般定位多个,默认返回第一个元素 |
find_element_by_tag_name | 通过标签名定位元素,不常用 |
find_element_by_link_text | 通过文案来定位元素,需要填写完整的链接文案内容 |
find_element_by_partial_link_text | 需要填写部分文案内容 |
find_element_by_css_seletor | 通过CSS选择器来定位元素 |
find_element_by_xpath | 通过XPATH来定位元素 |
2.1 find_element_by_id
we_id = wd.find_element_by_id('kw')
print(we_id.get_attribute('outerHTML'))
print(we_id.get_attribute('id'))
2.2 find_element_by_name
we_name = wd.find_element_by_name('wd')
print(we_name.get_attribute('outerHTML'))
2.3 find_element_by_class_name
we_class = wd.find_element_by_class_name('s_ipt')
print(we_class.get_attribute('outerHTML'))
2.4 find_element_by_tag_name
we_tags = wd.find_elements_by_tag_name('input')
print(type(we_tags))
for ele in we_tags:
print(ele.get_attribute('outerHTML'))
2.5 find_element_by_link_text
wd.find_element_by_link_text('学术').click()
2.6 find_element_by_partial_link_text
wd.find_element_by_partial_link_text('学').click()