• selenium使用


    # 为了解决requests无法直接执行JavaScript代码的问题 
    # 
    
    
    # pip3 install selenium
    
    
    # 浏览器驱动:http://npm.taobao.org/mirrors/chromedriver/
    # 驱动要跟浏览器版本对应  84.0.4147.105:驱动用84.0.4147.30/
    # 下载完解压就是个exe(不同平台的可执行文件)
    # from selenium import webdriver
    # import time
    # # bro=webdriver.Chrome()  # 得到一个谷歌浏览器对象,
    # # 指定使用跟那个驱动
    # bro=webdriver.Chrome(executable_path='./chromedriver.exe') # 得到一个谷歌浏览器对象,
    #
    # time.sleep(2)
    # bro.get('https://www.baidu.com/')  # 在地址栏里输入了百度
    # time.sleep(2)
    # print(bro.page_source)
    # time.sleep(2)
    # bro.close()
    
    
    
    # 模拟登陆百度
    # from selenium import webdriver
    # import time
    # bro=webdriver.Chrome(executable_path='./chromedriver.exe')
    #
    # bro.get('https://www.baidu.com/')
    # time.sleep(0.01)
    # input_k=bro.find_element_by_id('kw')
    # input_k.send_keys('美女')  # 在框里写入美女
    # time.sleep(2)
    # sou=bro.find_element_by_id('su')  # 找到搜索按钮
    # sou.click() # 点击搜索按钮
    # time.sleep(4)
    # bro.close()
    
    
    # from selenium import webdriver
    # import time
    # bro=webdriver.Chrome(executable_path='./chromedriver.exe')
    # bro.implicitly_wait(5)  # 隐士等待:找一个控件,如果控件没有加载出来,等待5s中  等待所有,只需要写着一句,以后找所有控件都按这个操作来
    # bro.get('https://www.baidu.com/')
    #
    # d_button=bro.find_element_by_link_text('登录')
    #
    # d_button.click()
    #
    # login_u=bro.find_element_by_id('TANGRAM__PSP_11__footerULoginBtn')
    # login_u.click()
    #
    # username=bro.find_element_by_id('TANGRAM__PSP_11__userName')
    # username.send_keys('yxp654799481')
    # password=bro.find_element_by_id('TANGRAM__PSP_11__password')
    # password.send_keys('yxp997997')
    # time.sleep(3)
    # submit=bro.find_element_by_id('TANGRAM__PSP_11__submit')
    #
    # submit.click()
    # time.sleep(10)
    #
    # print(bro.get_cookies())
    #
    # bro.close()
    
    
    
    # ##############选择器(find系列)
    # ===============所有方法===================
    # 1、find_element_by_id   # 通过id查找控件
    # 2、find_element_by_link_text  # 通过a标签内容找
    # 3、find_element_by_partial_link_text  # 通过a标签内容找,模糊匹配
    # 4、find_element_by_tag_name   # 标签名
    # 5、find_element_by_class_name  # 类名
    # 6、find_element_by_name      # name属性
    # 7、find_element_by_css_selector  # 通过css选择器
    # 8、find_element_by_xpath       # 通过xpaht选择器
    # 强调:
    
    # 1、find_elements_by_xxx的形式是查找到多个元素,结果为列表
    
    
    
    
    # 获取元素属性
    # 重点
    # tag.get_attribute('href')  # 找当前控件 的href属性对的值
    # tag.text   # 获取文本内容
    
    # 了解
    # print(tag.id)   # 当前控件id号
    # print(tag.location)  # 当前控件在页面位置
    # print(tag.tag_name)  # 标签名
    # print(tag.size)      #标签的大小
    
    
    
    ####无界面浏览器(phantomjs)
    #谷歌浏览器支持不打开页面
    # from selenium.webdriver.chrome.options import Options
    # from selenium import webdriver
    # chrome_options = Options()
    # chrome_options.add_argument('window-size=1920x3000') #指定浏览器分辨率
    # chrome_options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug
    # chrome_options.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面
    # chrome_options.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度
    #
    #
    # chrome_options.add_argument('--headless') #浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
    #
    #
    # bro=webdriver.Chrome(chrome_options=chrome_options,executable_path='./chromedriver.exe')
    # bro.get('https://www.baidu.com/')
    # print(bro.page_source)
    # bro.close()
    
    
    ######元素交互
    # tag.send_keys()  # 往里面写内容
    # tag.click()      # 点击控件
    # tag.clear()      # 清空控件内容
    
    #####执行js(有什么用?)
    
    # from selenium import webdriver
    # import time
    # bro=webdriver.Chrome(executable_path='./chromedriver.exe')
    # bro.implicitly_wait(5)  # 隐士等待:找一个控件,如果控件没有加载出来,等待5s中  等待所有,只需要写着一句,以后找所有控件都按这个操作来
    # bro.get('https://www.baidu.com/')
    #
    #
    # bro.execute_script('window.open()')
    # bro.execute_script('window.open()')
    # time.sleep(2)
    # bro.close()
    
    
    ####模拟浏览器前进后退
    
    # from selenium import webdriver
    # import time
    # browser=webdriver.Chrome(executable_path='./chromedriver.exe')
    # browser.get('https://www.baidu.com')
    # browser.get('https://www.taobao.com')
    # browser.get('http://www.sina.com.cn/')
    #
    # browser.back()
    # time.sleep(1)
    # browser.forward()
    #
    # browser.close()
    
    
    #####获取cookie
    # bro.get_cookies()
    
    
    
    #### 选项卡管理(了解)
    # from selenium import webdriver
    # import time
    # browser=webdriver.Chrome()
    # browser.get('https://www.baidu.com')
    # browser.execute_script('window.open()')
    #
    # print(browser.window_handles) #获取所有的选项卡
    # browser.switch_to_window(browser.window_handles[1])
    # browser.get('https://www.taobao.com')
    # time.sleep(2)
    # browser.switch_to_window(browser.window_handles[0])
    # browser.get('https://www.sina.com.cn')
    # browser.close()
    
    
    
    ##### 异常处理
    # from selenium import webdriver
    # from selenium.common.exceptions import TimeoutException,NoSuchElementException,NoSuchFrameException
    # browser=webdriver.Chrome()
    # try:
    #
    #     browser.get('')
    # except Exception as e:
    #     print(e)
    # finally:
    #     # 无论是否出异常,最终都要关掉
    #     browser.close()
    
    
    
    #####动作链()
    
    
    #### 如何把屏幕拉倒最后(js控制)
    
    # bro.execute_script('window.scrollTo(0,document.body.offsetHeight)')
  • 相关阅读:
    Bootstrap 栅格系统的总结
    你真的了解font-weight吗?
    常用jquery
    ios 遮罩层,切换后内容滑动到最上方,并且不可点击
    Canvas与Image互相转换示例以及实现微信长按自动识别二维码功能
    解决手机上页面返回但是页面js没有刷新的痛点
    rem定义
    二维码转换格式
    bootstrap框架的基本使用
    响应式开发及其原理
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14885698.html
Copyright © 2020-2023  润新知