相关文章推荐

1. chome浏览器安装和driver安装
a) chrome浏览器下载
b) chome driver下载地址
driver下载时,选择mac64版本的,请与chrome浏览器的版本匹配,至少是接近,否则易引起错误
chome driver下载完毕后,解压后我直接将这个可执行程序放到了/usr/local/bin中
2、安装python的selenium, pip install selenium
3、使用selenium写个实验程序:

#coding:utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
# 设置选项:无窗口后台运行
chrome_options = Options()
chrome_options.add_argument('--headless')
# 取得driver
driver = webdriver.Chrome('/usr/local/bin/chromedriver', chrome_options=chrome_options) 
# 访问网页
url = 'http://www.baidu.com'
driver.get(url)
time.sleep(1) # sleep 1s 等待加载网页
# 打印源码
print driver.page_source
driver.quit() # 关闭driver

4. webdriver常用操作连接   webdriver      Python版实用指南

4.1  浏览器操作

driver.current_url #用于获得当前页面的URL driver.title #用于获取当前页面的标题 driver.page_source #用于获取页面html源代码 driver.port #用于获取浏览器的端口 driver.capabilities['version'] #打印浏览器version的值 #浏览器: driver.get(url):#浏览器加载url driver.back() #浏览器后退 driver.forward() #浏览器前进 driver.refresh() #浏览器刷新(点击刷新按钮) driver.set_page_load_timeout(5) #设置页面加载时间,如果超时会跑异常 driver.implicitly_wait(秒) #隐式等待,通过一定的时长等待页面上某一元素加载完成。 #若提前定位到元素,则继续执行。等待10s若超过时间未加载出,则抛出NoSuchElementException异常。 #执行js: driver.execute_script(js) #调用js

4.2  窗口和弹框操作

driver.current_window_handle #用于获取当前窗口句柄 driver.window_handles #用于获取所有窗口句柄 driver.maximize_window() #将浏览器最大化显示 driver.set_window_size(480, 800) #设置浏览器宽480、高800显示 driver.get_window_size() #获取当前窗口的长和宽 driver.get_window_position() #获取当前窗口坐标 driver.set_window_position(300,200) #设置当前窗口坐标 driver.get_screenshot_as_file(filename) #截取当前窗口 #实例:driver.get_screenshot_as_file('D:/selenium/image/baidu.jpg') driver.close() #关闭当前窗口,或最后打开的窗口 driver.quit() #关闭所有关联窗口,并且安全关闭session #窗口切换: driver.switch_to_frame(id或name属性值)#切换到新表单(同一窗口)。若无id或属性值,可先通过xpath定位到iframe,再将值传给switch_to_frame() driver.switch_to.parent_content()#跳出当前一级表单。该方法默认对应于离它最近的switch_to.frame()方法 driver.switch_to.default_content() #跳回最外层的页面 driver.switch_to_window(窗口句柄) #切换到新窗口 driver.switch_to.window(窗口句柄) #切换到新窗口 #弹框切换: driver.switch_to_alert() #警告框处理。处理JavaScript所生成的alert,confirm,prompt driver.switch_to.alert() #警告框处理

4.3  cookies 操作

    driver.get_cookies()   #获取当前会话所有cookie信息
    driver.get_cookie(cookie_name)  #返回字典的key为“cookie_name”的cookie信息。
    #实例:driver.get_cookie("NET_SessionId")
    driver.add_cookie(cookie_dict)   #添加cookie。“cookie_dict”指字典对象,必须有name和value值
    driver.delete_cookie(name,optionsString)  #删除cookie信息
    driver.delete_all_cookies()  #删除所有cookie信息

4.4   简单对象的定位

能通过id和name的,尽量不要用xpath和css 唯一属性定位 先找到相邻的元素 diver.find_element("xpath",".//a//span") # 利于封装 driver.find_element_by_id() driver.find_element_by_name() driver.find_element_by_class_name() driver.find_element_by_tag_name() driver.find_element_by_link_text() driver.find_element_by_partial_link_text() # 模糊查询 driver.find_element_by_xpath() driver.find_element_by_css_selector() # css选择定位器

4.5   页面元素操作

    # 属性:
    element.size  #获取元素的尺寸。
    element.text   #获取元素的文本。
    element.tag_name   #获取标签名称
    element.clear()  #用于清除输入框的默认内容
    element.send_keys("xx")  #用于在一个输入框里输入 xx 内容
    element.click()  #用于单击一个按钮
    element.submit()  #提交表单
    element.size  #返回元素的尺寸
    element.text  #获取元素文本
    element.get_attribute('value')
    #返回元素的属性值,可以是id、name、type或元素拥有的其它任意属性
    #如果是input的,可以通过获取value值获得当前输入的值
    element.is_displayed ()
    #返回元素的结果是否可见,返回结果为True或False
    element.is_enabled()  #判断元素是否可用
    element.is_selected()   #返回单选按钮、复选框元素结果是否被选中(True 或 False)
    element.value_of_css_property(height)  #获取元素css样式属性

4.6  鼠标事件

    #引入ActionChains类
    from selenium.webdriver.common.action_chains import ActionChains
    mouse =driver.find_element_by_xpath("xx") #定位鼠标元素
    #对定位到的元素执行鼠标操作
    ActionChains(driver).context_click(mouse).perform() #鼠标右键操作
    ActionChains(driver).double_click(mouse).perform() #鼠标双击操作
    ActionChains(driver).move_to_element(mouse).perform() #鼠标移动到上面的操作
    ActionChains(driver).click_and_hold(mouse).perform() #鼠标左键按下的操作
    ActionChains(driver).release(mouse).perform()  #鼠标释放
    #鼠标拖拽
    element = driver.find_element_by_name("xxx")  #定位元素的原位置
    target = driver.find_element_by_name("xxx") #定位元素要移动到的目标位置
    ActionChains(driver).drag_and_drop(element, target).perform() #执行元素的移动操作

4.7  键盘事件

    #引入Keys类包
    from selenium.webdriver.common.keys import Keys
    element.send_keys(Keys.BACK_SPACE)  #删除键(BackSpace)
    element.send_keys(Keys.SPACE)  #空格键(Space)
    element.send_keys(Keys.TAB)  #制表键(Tab)
    element.send_keys(Keys.ESCAPE)  #回退键(Esc)
    element.send_keys(Keys.ENTER)  #回车键(Enter)
    element.send_keys(Keys.CONTROL,'a')  #全选(Ctrl+A)
    element.send_keys(Keys.CONTROL,'c')  #复制(Ctrl+C)
    element.send_keys(Keys.CONTROL,'x')  #剪切(Ctrl+X)
    element.send_keys(Keys.CONTROL,'v')  #粘贴(Ctrl+V)
    element.send_keys(Keys.F12)   #键盘F12
    #输入空格键+“python”
    element.send_keys(Keys.SPACE)
    element.send_keys("python")

4.8  用selenium提取html标签中的@href链接

import time
from selenium import webdriver
if __name__ == '__main__':
    url = "https://www.baidu.com"
    driver = webdriver.Chrome()
    driver.get(url)
    driver.implicitly_wait(10)
    time.sleep(2)
    for link in driver.find_elements_by_xpath('//*[@id="u1"]/a'):
        print(link.get_attribute('href'))
        a = link.get_attribute('href')
        print(a) 
    driver.quit()
1. chome浏览器安装和driver安装a)chrome浏览器下载b)chome driver下载地址 driver下载时,选择mac64版本的,请与chrome浏览器的版本匹配,至少是接近,否则易引起错误 chome driver下载完毕后,解压后我直接将这个可执行程序放到了/usr/local/bin中2、安装python的selenium,pip insta...
Mac OS 搭建 Python + selenium 自动化测试环境 1、官网下载安装 python 访问 Python 官网 https://www. python .org/downloads,下载安装 Python 安装包,一路点击安装即可。 验证是否安装成功 打开终端,输入以下命令,查看 python 安装位置 which python 3 终端输入以下命令,查看 Python 当前版本 python 3 --version 终端输入以下命令,进入 Python 交互模式 python 3 ——————————————————————————————- Mac OS 自身其实已经带有 Python ,版本为2.7.
Pycharm安装 安装selenum 通过pip安装或者通过pycharm安装均可 安装chrome webdriver 下载地址:http://chromedriver.storage.googleapis.com/index.html,下载安装与本地chrome版本一致的 webdriver ,参考地址:https://cloud.tencent.com/developer/article/1365269 编写测试代码: #!/usr/local
Python Selenium WebDriver 中,使用 webdriver .Chrome()启动Chrome浏览器时,可能会遇到闪退的问题。一个可能的解决方法是,首先确保你安装的是最新版本的 selenium 库。如果问题仍然存在,可以尝试以下方法解决: 1. 检查Chrome浏览器和ChromeDriver版本是否匹配。ChromeDriver的版本应该与你安装的Chrome浏览器版本相匹配。可以在ChromeDriver的官方网站上找到对应的版本。 2. 确保你的操作系统和Chrome浏览器的位数(32位或64位)与ChromeDriver的位数相匹配。如果不匹配,可能会导致Chrome浏览器闪退。 3. 如果你已经安装了最新版本的Chrome浏览器,但仍然遇到问题,可以尝试降低Chrome浏览器的版本。有时候最新版本的Chrome浏览器可能与 selenium 库不兼容。 如果以上方法都不能解决问题,还可以尝试使用其他浏览器,如Firefox或Edge,看看是否能正常启动。
 
推荐文章