web自动化-selenium1

99 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情

今天介绍一下web自动化工具selenium,那么selenium是什么呢?它是一个提供元素定位的工具,可以帮助我们更好的定位到页面上的元素,以便于我们更好的进行操作,安装好浏览器驱动之后,可以创建一个驱动对象,然后基于对象我们可以对网页进行一系列包括但不限于点击,键盘,右键,拖拽等操作。下面讲一下selenium的安装和基本操作。

1.selenium下载安装: 1.1教程: blog.csdn.net/qq_48736958… 1.2chrome的驱动下载: chromedriver.storage.googleapis.com/index.html 1.3谷歌浏览器网址: www.google.cn/chrome/

2.操作语句(元素定位): from selenium import webdriver d=webdriver.Chrome() #启动浏览器 sleep(n) #间隔n秒做一次操作 d.minimizae_window() #最小化窗口 d.maximize_window() #最大化 d.back() #回退 d.forward () #前进 d.get('网址') #进入输入的网址 d.close() #关闭当前窗口 d.quit() #退出浏览器 d.current_url #当前页面地址 d.current_window_handle #当前窗口句柄 d.find_element(By.ID,'输入框id').send_keys('selenium操作') #在输入框中输入selenium操作 d.find_element(By.LINK_TEXT,'超链接名称').click #点击进入当前页面的超链接 d.switch_to.window(d.window_handles[-1]) #切换到最后一个窗口 d.find_element(By.PARTIAL_LINK_TEXT,'超链接部分名称').click #点击超链接(一般在超链接名称比较长的时候使用) d.find_element(By.CLASS_NAME,'class名称') d.find_element(By.XPATH,'') #元素定位 //->相对位置,例如//p[@class="msg_con" and ...],加属性定位的时候要加@符号,如果使用一个属性定位不到的时候要使用多个属性定位,用and 连接属性 / ->绝对位置 d.find_element(By.XPATH,'//p[@class="msg_con"]').text -> 获取元素的文本内容

select下拉菜单: Select().select_by_index() #以index属性值来查找匹配的元素并选择 Select().select_by_value() #以value属性值来查找该option并选择 Select().select_by_visible_text() #以text文本属性值来查找匹配的元素并选择 Select().first_selected_option() #选择第一个option选项 单选框: d.find_element_by_css_selector('input[value=""]').click()

隐式等待: d.implicity_wait(时间) #页面正在加载的时候会等待,如果加载出来了直接进行后面的操作,不用继续等待。如果在这个时间内还没有加载出来就会报错 显示等待: from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC WebDriverWait(driver,等待时长,轮循周期).until(可执行方法,超时时返回的信息)/until_not() 例如: WebDriverWait(driver,10).until(EC.invisibility_of_element_located((By.ID,id_qr)))

POM ->Page Object Model 代码简化