python3+selenium自动化测试-元素定位2

一、selenium小例子

-1导入模块
from selenium import webdriver

-2选择浏览器
browser = webdriver.Chrome()
browser = webdriver.Firefox()
brower = webdriver.IE()

实例如下:

#导入模块
from selenium import webdriver

#选择浏览器
browser = webdriver.Chrome()

#打开url
browser.get("http://www.baidu.com")

#关闭
browser.close()

二、元素定位

在一个页面中有很多不同的策略可以定位一个元素。在你的项目中, 你可以选择最合适的方法去查找元素。Selenium提供了下列的方法给你:
find_element_by_id 定位唯一属性id。
find_element_by_name 定位带有属性name。
find_element_by_xpath XPath是一种在XML文档中定位元素的语言(比较难)。
find_element_by_link_text 定位文本链接。
find_element_by_partial_link_ textpartial link定位是对link定位的一种补充,有些文本链接会比较长,这个时候我们可以取文本链接的一部分定位,只要这一部分信息可以唯一地标识这个链接。
find_element_by_tag_name 如打开任意一个页面,查看前端都会发现大量的, 等tag ,所以很难通过标tag name去区分不同的元素。
find_element_by_class_name 定位带有属性class。
find_element_by_css_selector CSS是一种语言,它用来描述HTML和XML文档的表现。CSS使用选择器来为页面元素绑定属性。(比较难

用By定位元素
针对前面介绍的8种定位方法,WebDriver还提供了另外一套写法,即统一调用 find_element()方法 ,通过By来声明定位的方法,并且传入对应定位方法的定位参数。具体如下:

find_element(By.id,"kw")
find_element(By.name,"wd")
find_element(By.class_name,"s_ipt")
find_element(By.tag_name,"input")
find_element(By.link_text,"新 闻 ")
find_element(By.partial_link_text," 新  ")
find_element(By.XPath,"//* [@class = ‘bg s_btn’ ]")
find_element(By.CSS_selector,"span .bg s_btn_wr>input#su")
find_element()方法只用于定位元素。它需要两个参数,第一个参数是定位的类型,由By提供;第二个参数是定位的具体方式。
在使用By之前需要将By类导入。
from selenium.webdriver.common.by import By

一次查找**多个元素 **(这些方法会返回一个list列表):
find_elements_by_name
find_elements_by_xpath
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_tag_name
find_elements_by_class_name
find_elements_by_css_selector
除了上述的公共方法,下面还有两个私有方法,在你查找也页面元素的时候也许有用。 他们是 find_element 和 find_elements 。
另外还有通过BY元素属性来查找元素。

Windows电脑的cmd命令行运行python命令:python D:\xxx\test_selenium1.py,即可

from selenium import webdriver
from time import sleep
# 导入time模块,time模块是Python自带的,设置等待时间,单位是秒(s),时间值可以是小数也可以是整数

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
driver.implicitly_wait(10)


driver.find_element_by_id("kw").send_keys("CSDN")
driver.find_element_by_id("su").click()
print(driver.title)

sleep(1)
driver.find_element_by_partial_link_text("CSDN博客").click()
sleep(10)
print(driver.title)

all = driver.window_handles
old = driver.current_window_handle
for h in all:
    if h!=old:
        driver.switch_to.window(h)
print(driver.title)

ele1 = driver.find_element_by_class_name("input_search")
ele1.send_keys("python3教程")

ele2 = driver.find_element_by_class_name("btn-search")
ele2.click()
sleep(5)
driver.quit()
# quit用于结束进程,关闭所有的窗口

参考链接https://www.cnblogs.com/linxiu-0925/p/9599892.html

你可能感兴趣的:(python3+selenium自动化测试-元素定位2)