Selenium12--元素基本操作

文本框和文本域

  • 点击: click()

  • 清空: clear()

  • 输入:

    • send_keys("数据")
    • 保留原内容,追加输入
    • 文本域输入换行时使用转义字符\n来表示
  • 获得属性值

    • get_attribute("html里的标记属性名")
    • 最常使用的属性名有"value",代表当前文本框或文本域里的当前内容(str类型)
    • title 代表鼠标移动到上面时显示的提示
    • placeholder 代表未输入任何内容时的占位符
  • 获得当前是否可用的状态

    • is_enabled()
    • True代表可用
    • False代表禁用(一般是置灰的)

按钮

  • 点击
    • click()
  • 获得属性值
    • get_attribute("html里的标记属性名")
    • 最常使用的属性名有"value",代表当前文本框或文本域里的当前内容(str类型)
  • 获得当前是否可用的状态
    • is_enabled()
    • True代表可用
    • False代表禁用(一般是置灰的)

单选按钮和复选框

  • 点击

    • click()
  • 获得当前是否可用的状态

    • is_enabled()
    • True代表可用
    • False代表禁用(一般是置灰的)
  • 获得当前是否已经被选中的状体值

    • is_selected()
    • True代表已经被选中
    • False代表没有被选中

超级链接和图片

  • 点击
    • click()
  • 获得属性值
    • get_attribute("html里的标记属性名")
    • 得到的属性值是str
    • 对于超级链接,常用的属性名是href,代表跳转到的目标网页URL
    • 对于图片,常用的属性名是src,代表图片的存储路径

超级链接和静态文本

  • 获得文本内容:开始和结束标记之间的文本字符串
    • test
    • text是一个页面元素对象的属性名
    • 得到的文本是str类型的数据
"""
    输入关键字806,判断"搜索”按钮如果可用,点击"搜索”按钮,等待3秒
    点击搜索结果区域里的P806的商品名称,等待3秒
    打印”购买数量"文本框的当前默认值
    获得"商品库存"的台数,如果大于4台,清空”购买数量"文本框,输入4
    判断”数据线"复选框如果没有被选中,就点击选中它,再点击“购买数量”文本框,等待8秒
    获得此时的”商品总价",如果是”¥8080元",打印”总价计算正确",否则打印”总价计算错误"。
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/index.php')
driver.find_element(By.ID,'keyword').send_keys('806')
btn = driver.find_element(By.NAME,'imageField')
if btn.is_enabled():# 如果搜索按钮可用
    btn.click() # 点击搜索按钮
driver.find_element(By.LINK_TEXT,'P806').click()
v1 = driver.find_element(By.ID,"number").get_attribute('value')
print(v1)
t1 = driver.find_element(By.XPATH,"//dd[strong='商品库存:']").text
print(t1)
# 商品库存: 148 台
# 截取第5个字符到 " 台"字符串之间的文本字符串,用strip函数去掉前后的空格,运用int函数进行类型转换
count = int(t1[5:t1.find(' 台')].strip())
if count>4:
    n = driver.find_element(By.ID, "number")
    n.click()
    n.send_keys("4")
# 数据线复选框
s = driver.find_element(By.ID,'spec_value_168')
if not s.is_selected():
    s.click()
driver.find_element(By.ID, "number").click()#点击购买数量可以触发总价计算的事件发生

total = driver.find_element(By.ID,'ECS_GOODS_AMOUNT').text
if total == '¥8080元':
    print("总价计算正确")
else:
    print("总价计算失败")
driver.quit()

"""
打开登录页
输入用户名vip,输入密码vip,点击”立即登陆",等待5秒
点击”留言板",等待3秒,如果“匿名用户”复选框未选中,就点击它
如果电子邮件地址当前值是vip@ecshop.com,清空,输入vip@126.com
如果”留言"单选按钮默认被选中,点击”售后"单选按钮
输入主题”hello”,输入留言内容”123\n456”
如果”我要留言"按钮可用,就点击它,等待1秒
如果网页源代码中包含”您的留言已成功发表, 请等待管理员的审核!",打印”留言成功",否则打印”留言失败"。
"""

posted @ 2022-12-12 23:49  暄总-tester  阅读(199)  评论(0)    收藏  举报