记录一个web自动化工具
Selenium框架
使用方法
from selenium import webdriver
# 这里使用的是谷歌浏览器 还有很多的浏览器可以选择 wd = webdriver.Chrome(r'd:\webdrivers\chromedriver.exe') wd.get('http://cdn1.python3.vip/files/selenium/sample2.html') # 先根据name属性值 'innerFrame',切换到iframe中 wd.switch_to.frame('innerFrame') # 根据 class name 选择元素,返回的是 一个列表 elements = wd.find_elements_by_class_name('plant') for element in elements:
print(element.text) # 切换回 最外部的 HTML 中 wd.switch_to.default_content() # 然后再 选择操作 外部的 HTML 中 的元素 wd.find_element_by_id('outerbutton').click() wd.quit()
xpath 选择器的使用方法
# 使用上图的方法可以快速的取到xpath的位置 driver.find_elements_by_xpath("/html/body/div[4]/div[4]")
示例:
以下的方法已经失效了自供参考如有错误请谅解
from selenium import webdriver # 注意如果要使用谷歌的浏览器需要下载chromedriver.exe driver = webdriver.Chrome('F:\下载\chromedriver.exe') driver.get('https://www.baidu.com/') # 模拟登录 class Mock_login(): def __init__(self, browser, url_login, username, password): self.browser = browser self.url_login = url_login self.username = username self.password = password # 这里就不多写判断机制了(如:url是否可以访问,浏览器路径是否正常....) 就直接写主要功能 # 创建一个实例 self.wd = webdriver.Chrome(self.browser) # 隐形等待时间(功能:等待网络IO和js渲染) self.wd.implicitly_wait(10) def run(self): self.wd.get(self.url_login) # .click()点击 self.wd.find_element_by_xpath('/html/body/div[2]/div[1]/div[4]/a[2]').click() self.wd.find_element_by_name('normal').click() # 选择到用户名的输入框 username_bot = self.wd.find_element_by_name('userName') # 输入内容 username_bot.send_keys(self.username) # 选择到密码的输入框 password_bot = self.wd.find_element_by_name('password') # 输入内容 password_bot.send_keys(self.password) # 登录 self.wd.find_element_by_id('TANGRAM__PSP_11__submit').submit() # 退出浏览器 self.wd.quit() if __name__ == '__main__': Mock_login('F:\下载\chromedriver.exe','https://www.baidu.com/','aa','123')