Selenium语法

Selenium-语法

selenium的开始–webdriver

如果看到这里,你需要知道怎么安装自动化测试需要的环境的话,这么来就OK了。

pip install selenium

关于驱动不知道哪里下载的,可以访问

Chromedriver(Chrome):https://sites.google.com/a/chromium.org/chromedriver/home

geckodriver(Firefox):https://github.com/mozilla/geckodriver/releases

IEDriverServer(IE):http://selenium-release.storage.googleapis.com/index.html

operadriver(Opera):https://github.com/operasoftware/operachromiumdriver/releases

把对应的驱动下载放到python3的安装目录下就OK了。不过,这只是局限于本地的调试使用,后面部署到服务器中,还是推荐使用无头浏览器来完成自动化测试。

在写Selenium的代码之前,我们都需要导入Selenium的webdriver,这是最开始的第一步。

from selenium import webdriver

之后,就可以使用selenium了。定义需要启动的浏览器。

driver = webdriver.Chrome() //打开Chrome浏览器
driver = webdriver.Firefox() //打开Firefox浏览器
driver = webdriver.Ie() //打开IE浏览器

访问需要测试页面。

driver.get("test url")  //test url为需要传进去的url

实现上面的步骤就已经可以正常打开需要测试的页面了。接下来就是对页面进行操作了,这也是Selenium强大的其中一点,各种API给开发者更容易了解。

selenium定位元素–find_element

8种定位元素,可以根据页面元素的不同,使用不同的方法:

方法使用
ID定位driver.find_element_by_id()
name定位driver.find_element_by_name()
classname定位driver.find_element_by_class()
tag定位driver.find_element_by_tag_name()
text定位driver.find_element_by_text()
partial link text定位driver.find_element_by_partial_link_text()
xpath定位

driver.find_element_by_xpath()

  1. 绝对路径:find_element_by_xpath("绝对路径")
  2. 元素属性:find_element_by_xpath("//input[@id='kw']")
  3. 层级与属性结合:find_element_by_xpath("//form[@id='login']/ul/input")
  4. 逻辑运算符:find_element_by_xpath("//input[@id='kw' and@class='s_ipt']")
  5. 多元素组合:find_element_by_xpath("//*[@id='kw' and @cotains="value"]
css定位

driver.find_element_by_css_selector()

  1. 元素为ID就使用:“#id“
  2. 元素为classname就使用:“.classname“
  3. data数据定位:“[data_select='data_value']“
用css定位的方式是很多人都在使用的,因为在做自动化测试,主要就是操作前端DOM树的结构去定位,所以,在使用css的方法上会对DOM结构会更加了解。至于xpath也是推荐的,很多人说xpath的方法在性能上会比其他的慢,你使用之后,就会发现,差别并不是很大。
selenium的操作–driver.action()
动作方法
点击driver.find_element(*loc).click()
确认点击driver.find_element(*loc).submit()
输入文本driver.find_element(*loc).send_keys("value")
清除文本driver.find_element(*loc).clear()
显示等待WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.ID,'value')))
隐式等待driver.implicitly_wait(seconds)
强行等待time.sleep(seconds)
表单切换driver.switch_to.frame()
窗口切换driver.switch_to.window()
弹窗处理

点击弹窗:alert = driver.switch_to.alert

alert.accept()

获取窗口内容:alert.text()

获取titledriver.title
获取文本driver.find_element(*loc).text
获取属性值driver.find_element(*loc).get_attribute(name)
关闭浏览器driver.close()
关闭窗口driver.quit()
页面截图driver.get_screenshot_as_file(imageName)
selenium的Action事件

这个事件的操作也可以在一些情况下,操作变得简单。

首先就是导入Action的库

from selenium.webdriver.common.action_chains import ActionChains
动作方法
鼠标右击

element=driver.find_element_by_css_selector("#kw")

ActionChains(driver).context_click(element).perform()

鼠标双击

element=driver.find_element_by_css_selector("#kw")

ActionChains(driver).double_click(DoubleClick).perform()

鼠标悬停

element=driver.find_element_by_css_selector("#kw")

ActionChains(driver).move_to_element(DoubleClick).perform()

#### JS 操作
动作方法
执行jsdriver.extcute_javascript(js)
滚动页面js = "window.scrollTo(100,450);"
driver.execute_script(js)
滚动到顶部js = "window.scrollTo(0,0);"
driver.execute_script(js)
滚动到底部js = "window.scrollTo(0,document.body.scrollHeight);"
driver.execute_script(js)
滚动到指定位置

target = drvier.find_element(*loc)

driver.execute_script("arguments[0].scrollIntoView();",target)

现在对于上面的知识点不需要完全熟悉,只要知道selenium可以解决日常的大部分问题就可以了,还有知道怎么用就差不多了,因为你会在后面实战的时候,会用到很多方法。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值