环境配置
- install python
- Add pip.exe and python.exe paths to system environment variables
- pip install selenium
- install pycharm
- install the WebDriver version corresponding to the browser version(Add the path to the system environment variable or put WebDriver in the Scripts file in the python directory)
最简单案例:
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Edge()
driver.get('http://www.baidu.com')
driver.find_element(By.ID, 'kw').send_keys('w')
driver.find_element(By.ID, 'su').click()
sleep(3)
driver.quit()
#封装函数
def test():
driver = webdriver.Edge()
driver.get('http://www.baidu.com')
driver.find_element(By.ID, 'kw').send_keys('w')
driver.find_element(By.ID, 'su').click()
sleep(3)
driver.quit()
# test()
#封装类
class TestCase(object):
def __init__(self):
self.driver = webdriver.Edge()
def test(self):
self.driver.get('http://www.baidu.com')
self.driver.find_element(By.ID, 'kw').send_keys('w')
self.driver.find_element(By.ID, 'su').click()
sleep(3)
self.driver.quit()
if __name__ == '__main__':
case = TestCase()
case.test()
元素定位
find_element 返回元素 find_elements 返回一个集合
find_element_by_id() find_element_by_xpath() find_element_by_link_text() find_element_by_partial_link_text() find_element_by_tag_name() find_element_by_name() find_element_by_class_name() find_element_by_css_selector()
现在find_element_by_...已经被弃用,推荐方法
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
class TestElement(object):
def __init__(self):
self.driver = webdriver.Edge()
self.driver.get('http://www.baidu.com')
def test_id(self):
element = self.driver.find_element(By.ID, 'kw')
element.send_keys('id')
self.driver.find_element(By.ID, 'su').click()
sleep(1)
# self.driver.quit()
def test_name(self):
element = self.driver.find_element(By.NAME, 'wd')
element.send_keys('name')
self.driver.find_element(By.ID, 'su').click()
sleep(1)
# self.driver.quit()
def test_link_text(self):
self.test_name()
self.driver.find_element(By.LINK_TEXT, '百度首页').click()
sleep(1)
# self.driver.quit()
def test_partial_link_text(self):
self.test_name()
self.driver.find_element(By.PARTIAL_LINK_TEXT, '首页').click()
sleep(1)
# self.driver.quit()
def test_xpath(self):
element = self.driver.find_element(By.XPATH, '//*[@id="kw"]')
element.send_keys('xpath')
self.driver.find_element(By.ID, 'su').click()
sleep(1)
# self.driver.quit()
def test_tag_name(self):
# 返回的是一个list列表,通过序号获取,一般不用tag_name,不能准确的获取
element = self.driver.find_element(By.TAG_NAME, 'input')[0]
print(element)
sleep(1)
# self.driver.quit()
def test_css_selector(self):
element = self.driver.find_element(By.CSS_SELECTOR, '#kw')
element.send_keys('selector')
self.driver.find_element(By.ID, 'su').click()
sleep(1)
# self.driver.quit()
def test_css_name(self):
element = self.driver.find_element(By.CLASS_NAME, 's_ipt')
element.send_keys('css')
self.driver.find_element(By.ID, 'su').click()
sleep(1)
# self.driver.quit()
if __name__ == '__main__':
case = TestElement()
# case.test_id()
# case.test_name()
# case.test_link_text()
# case.test_partial_link_text()
# case.test_xpath()
# case.test_tag_name()
# case.test_css_selector()
case.test_css_name()
webdriver属性和方法
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
class TestDriver(object):
def __init__(self):
self.driver = webdriver.Edge()
self.driver.get('http://www.baidu.com')
def test_props(self):
print(self.driver.name) # 浏览器名称
print(self.driver.current_url) # 当前url
print(self.driver.title) # 当前页面标题
print(self.driver.window_handles) # 当前窗口所有句柄
print(self.driver.current_window_handle) # 当前窗口句柄
print(self.driver.page_source) # 浏览器源码
self.driver.quit() # 退出浏览器
def test_methods(self):
self.driver.find_element(By.ID, 'kw').send_keys('methods')
self.driver.find_element(By.ID, 'su').click()
sleep(3)
self.driver.back() # 浏览器后退
sleep(3)
self.driver.refresh() # 浏览器刷新
sleep(3)
self.driver.forward() # 浏览器前进
sleep(3)
self.driver.close() # 关闭当前浏览器页面tab
if __name__ == '__main__':
case = TestDriver()
# case.test_props()
case.test_methods()