webdriver提供的定位元素的方式

1.id属性定位->find_element_by_id("id属性值")

"""

需求:百度文本框输入selenium,点击百度一下

    1、百度文本框

    2、百度一下

使用ID属性定位:

    1、确定要操作的对象

    2、获取id属性

    3、其他操作

"""

#导包、创建浏览器对象、获取URL地址

from selenium import webdriver

import time

#driver 就是一个普通变量

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

#通过id定位文本框和百度一下

driver.find_element("id","kw").send_keys("selenium")

driver.find_element("id","su").click()

time.sleep(2)

#退出浏览器

driver.quit()

2.name属性定位->flind_element_by_name("name属性值")

#导包、创建浏览器对象、获取URL地址

from selenium import webdriver

import time

#driver 就是一个普通变量

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

#通过class name定位元素

driver.find_element("class name","s_ipt").send_keys("selenium")

time.sleep(2)

driver.find_element("class name","s_btn").click()

time.sleep(2)

#退出浏览器

driver.quit()

3.class name属性定位->find_element_by_class_name("id值")

不常用 显示超时 名字相同的太多

#导包、创建浏览器对象、获取URL地址

from selenium import webdriver

import time

#driver 就是一个普通变量

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

#通过tag name定位元素

driver.find_element("tag name","input").send_keys("selenium")

time.sleep(2)

driver.find_element("class name","s_btn").click()

time.sleep(2)

#退出浏览器

driver.quit()

4.link texts->find_elerment_by_link_text("链接的显示文本")

5.tag name:->find_element_by_tag_name("标签名"")

6.partial link text: ->find_element_by_partial_link_text("部分链接的显示文本")

"""

需求:定位百度首页的新闻链接,并打开这个页面

    1、新闻链接属性

"""

#导包、创建浏览器对象、获取URL地址

from selenium import webdriver

import time

#driver 就是一个普通变量

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

#使用link text属性定位,元素显示的文本信息,要求全部信息

driver.find_element("link text","新闻").click()

time.sleep(2)

#先用link text属性定位长信息,元素显示的文本信息,要求全部信息

driver.find_element("link text","郴州“湖南银行”林丹杯羽毛球赛开幕").click()

time.sleep(2)

#使用partial link text属性定位,元素显示的文本信息,可以使部分信息

driver.find_element("partial link text","郴州“湖南银行”林丹").click()

time.sleep(2)

7.xpath:->find_element_by_xpath(""xpath"")

"""

绝对路径定位:

    /:根节点

    //:相对节点

    1、百度文本框对应的绝对路径:

    父子节点之间使用/连接(在树状结构上有明显的所属关系)

    兄弟节点,标签名一样,使用[]排名次,老大[1]老二[2]老三[3],老大可以不写[]

    /html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input

    /html/body/div[1]/div[1]/div/div[1]/div/form/span[2]/input

    2、利用元素属性定位

    //input[@id='kw']

    3、利用父子关系以及属性定位:

        百度文本框按钮,当前属性都不好定位,但是他的父亲比较好定位,先定位他的父亲(爷爷),

    然后通过父子关系定位到相应的元素(文本框)

         //form[@id='form']/span/input

         //form[@id='form']/span[2]/input

    4、使用逻辑运算符无法定位,有重复的,一个不行,我用两个行吗?

        元素a id=1 name=a

        元素b id=1 name=b

        元素c id=1 name=a

        现在想定位元素a 比较麻烦 他的两个属性都不行 都有重复 怎么办?

            使用 and 和 or

            and 表示多个条件同时成立

            or 多个条件 表示有一个条件成立就行

  5、直接浏览器复制:

        //input[@id="kw"]

        /html/body/div[3]/div[1]/div[2]/a[1]

"""

#导包、创建浏览器对象、获取URL地址

from selenium import webdriver

import time

#driver 就是一个普通变量

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")



#1、 使用绝对路径定位

# driver.find_element("xpath","/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input").send_keys("selenium")

# time.sleep(2)

# driver.find_element("xpath","/html/body/div[1]/div[1]/div/div[1]/div/form/span[2]/input").click()

# time.sleep(2)



#2、利用元素属性定位

# driver.find_element("xpath","//input[@id='kw']").send_keys("selenium")

# time.sleep(2)

# driver.find_element("xpath","//input[@id='su']").click()

# time.sleep(2)



#3、利用父子管理以及属性定位

# driver.find_element("xpath","//form[@id='form']/span/input").send_keys("selenium")

# time.sleep(2)

# driver.find_element("xpath","//form[@id='form']/span[2]/input").click()        

# time.sleep(2)



#4、使用逻辑运算符

driver.find_element("xpath","//input[@id='kw' and @name ='wd']").send_keys("selenium")

time.sleep(2)

driver.find_element("xpath","//input[@id='su']").click()

time.sleep(2)

8.css:->find_element_by_css_selector("css")

"""

css定位

    .表示class选择器 .s_ipt

    #表示id选择器 #kw、#su

    *表示所有元素

    element 标签名

    element > element 表示父子关系 form#form > span > input 标签名为form且id为form

    直接复制

"""

from selenium import webdriver

import time

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

#css的类选择题来定位百度文本框,使用css的id选择器定位百度一下按钮

driver.find_element("css selector",".s_ipt").send_keys("selenium")

driver.find_element("css selector","#su").click()

定位到元素之后,我们能做的事?

1、清除文本

定位到元素之后,我们能做的事?

    clear():清除 文本。

    send_keys (value): 模拟键盘输入

    click():单击元素。 模拟鼠标点击,例如按钮、超链接、单选框、复选框操作。

    Current_url:返回当前url的ur1地址。

    title:返回当前 页面的title.

    Text:获取页面(提示框、警告框)显示的文木,或者是一些页面上的显示文本

        需求:获取百度首页百度热搜

        定位:/html/body/div[4]/div[1]/div[5]/div/div/div[3]/div/a[1]/div/i[1]

        操作:获取元素的文本

    get_attribute(name):获得属性值,又本框中的值使用value属性名。

    is_displayed(): 设置该元素是否用户可见。结果为真和假

    is_enabled():判断是否可用

    is_selected():判断是否选中,一般用复选框或者单选框的判断

"""

from selenium import webdriver

import time

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

#css的类选择题来定位百度文本框,使用css的id选择器定位百度一下按钮

driver.find_element("css selector",".s_ipt").send_keys("selenium")

time.sleep(2)

#需要清楚百度文本框中的selenium,clear方法你想对谁使用?

driver.find_element("css selector",".s_ipt").clear()

time.sleep(2)

driver.find_element("css selector","#su").click()

time.sleep(2)

driver.quit()

2、Current_url:返回当前url的ur1地址。

from selenium import webdriver

import time

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

#点击百度首页上的新闻按钮,要获取跳转后页面的url地址,并且判断是否符合其结果

driver.find_element("link text","新闻").click()

#获取新闻页面的url

url = driver.current_url

print(url)

#加断言

if url == "https://www.baidu.com/":

    print("跳转页面正确")

else:
    print("跳转页面失败")

3、title:返回当前 页面的title.

title = driver.title

4、Text:获取页面(提示框、警告框)显示的文木

wenben = driver.find_element("xpath","/html/body/div[4]/div[1]/div[5]/div/div/div[3]/div/a[1]/div/i[1]").text

5、get_ _attribute(name):获得属性值,文本框中的值使用value属性名

Value1=driver.find_element("id","kw").get_attribute("class")

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值