Java教程

『心善渊』Selenium3.0基础 — 11、Selenium对元素常用操作

本文主要是介绍『心善渊』Selenium3.0基础 — 11、Selenium对元素常用操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • 1、Selenium对元素常用操作
  • 2、Selenium对元素的其他操作

1、Selenium对元素常用操作

操作 说明
click() 单击元素
send_keys() 模拟输入
clear() 清除文本
submit() 点击提交

示例,页面代码片段如下

<!DOCTYPE html>
<html lang="zh-cn">
<body>
<div id="zc">
    <legend>注册用户A</legend>
    <p id="p1">
        <label for="userA">账号A</label>
        <input type="textA" name="userA" id="userA" class="c_uA" placeholder="账号A" required="" value="">
    </p>
    <p>
        <label for="password">密码A</label>
        <input type="password" name="passwordA" id="passwordA" placeholder="密码A" value="">
    </p>
    <p><a href="http://www.baidu.com" id="fwA">访问 百度 网站</a></p>
</div>
</body>
</html>

脚本代码

"""
1.学习目标:
    必须掌握selenium中元素的输入,点击,清空
2.语法
    2.1 点击
        元素.click()
    2.2 输入
        元素.send_keys(输入的内容)
    2.3 清空
        元素.clear()
    2.4 提交
        元素.submit()
3.需求
    在页面中,完成元素的输入,点击,清空,提交
4.总结
    在对输入框进行输入操作时,先清空再输入(要记住)
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
import os

# 2.打开浏览器
driver = webdriver.Chrome()

# 3.打开页面
url = "file:///" + os.path.abspath("./1.html")
driver.get(url)

# 4.对账号A输入框做输入和清空操作,点击新浪网站连接
# 4.1 定位输入框和百度超链接
# 定位账号A输入框
textA = driver.find_element_by_id("userA")
# 定位百度超链接
baidu = driver.find_element_by_link_text("访问 百度 网站")

# 4.2 输入文字,清空
# 在账号A中输入Selenium
textA.send_keys("Selenium")
sleep(2)
# 清空账号A中的输入内容
textA.clear()
sleep(2)

# 4.3 点击百度超链接
baidu.click()

# 4.4 定位百度输入框
baidu_element = driver.find_element_by_id("kw")

# 4.5 在输入框中输入【心善渊&Selenium基础】
baidu_element.send_keys("【心善渊&Selenium基础】")
sleep(5)
# 4.6 定位按钮 百度一下
yixia_element = driver.find_element_by_id("su")

# 4.7 点击百度一下
"""
submit()调用提交,
submit()的作用等同于click(),
但是click()的使用面要更广一些。
"""
yixia_element.submit()


# 5.关闭浏览器
sleep(2)
driver.quit()

补充

  • click()方法:就是单纯的点击下,或者说是单击下鼠标左键,更强调是一个独立性的事件。
  • submit()方法:一般使用在有form标签的表单中,把form表单中的信息提交到后台。submit()方法主要用于对信息进行提交,也可以使用click()方法进行代替。

2、Selenium对元素的其他操作

如下表:

操作 说明
size 返回元素大小(长宽像素)
text 获取元素的文本(两个标签之间的文字)
get_attribute("xxx") 获取属性值,xxx表示元素中要获取的属性
is_display() 判断元素是否可见,也就是在页面中是否可见
is_enabled() 判断元素是否可用
title 获取页面title
current_url 获取当前页面URL

提示:

  • sizetexttitlecurrent_url:为属性,调用时无括号。如:元素.size

  • is_display()is_enabled():为方法,调用时需要括号。如:元素.is_display().

  • titlecurrent_url:使用浏览器实例化对象直接调用。 如: driver.title

示例,页面代码片段如下

<!DOCTYPE html>
<html lang="zh-cn">
<body>
<div id="zc">
    <title>注册A</title>
    <button type="submitA" name="First button" value="注册A" title="加入会员A">注册用户A</button>
</div>
</body>
</html>

脚本代码

"""
1.学习目标:
    掌握selenium中元素的其他操作
2.语法
    2.1 size 获取元素大小
        元素.size
    2.2 text 获取元素文本(掌握)
        元素.text  2个标签之间的文字
    2.3 get_attribute() 获取元素属性(掌握)
        元素.get_attribute("属性名")
    2.4 is_displayed() 判断元素是否可见(掌握)
        元素.is_displayed()
    2.5 is_enabled()  判断元素是否可用(掌握)
        元素.is_enabled()
    2.6 获取页面标题
        driver.title
    2.7 获取当前页面url
        driver.current_url
3.需求
    在页面中,完成上面操作。
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
import os

# 2.打开浏览器
driver = webdriver.Chrome()

# 3.打开页面
url = "file:///" + os.path.abspath("./2.html")
driver.get(url)

# 4.元素其他操作---按钮
button = driver.find_element_by_css_selector("button[type='submitA']")

# 4.1 获取元素大小
print("元素大小:", button.size)

# 4.2 获取元素文本
print("元素文本:", button.text)

# 4.3 获取元素属性
print("元素的value属性值:", button.get_attribute("value"))
print("元素的title属性值:", button.get_attribute("title"))
# 没有的属性为空,什么都不打印,但不报错
print(button.get_attribute("id"))

# 4.4 判断元素是否可见
print("button按钮是否可见:", button.is_displayed())

# 4.5 判断元素是否可用
print("button按钮是否可用:", button.is_enabled())

# 4.6 获取页面标题
print("页面的title:", driver.title)

# 4.7 获取当前页面url
print(driver.current_url)

# 5.关闭浏览器
sleep(2)
driver.quit()
"""
输出结果:
元素大小: {'height': 23, 'width': 78}
元素文本: 注册用户A
元素的value属性值: 注册A
元素的title属性值: 加入会员A

button按钮是否可见: True
button按钮是否可用: True
页面的title: 注册A
file:///J:/PyCharmWorkSpace/firstproject/selenium/demo/2.html
"""
这篇关于『心善渊』Selenium3.0基础 — 11、Selenium对元素常用操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!