Web自动化Selenium-常见控件操作(上)

发表于:2022-12-21 09:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:东方不败就是我    来源:CSDN

  搜索框
  以百度搜索框为例,我们来看一下搜索框的元素属性。标签类型是<input>
  ●输入文字:ele.send_keys('storm')。
  ●清除文字:ele.clear()。
  ●获取搜索框中的内容:ele.get_property('value'),控件中的值传给了value属性。
  ●获取元素的属性:ele.get_attribute('name')。
  ●获取元素的tag name:ele.tag_name。
  from selenium import webdriver
  from time import sleep
   
  '''
  搜索框常见操作
  '''
  driver = webdriver.Chrome()
  driver.get('https://www.baidu.com/')
  #定位百度搜索框
  ele = driver.find_element_by_id('kw')
  ele.send_keys('storm') # 通过send_keys方法输入内容
  sleep(2)
  ele.clear() # 通过clear方法清除搜索框中的内容
  sleep(2)
  ele.send_keys('storm') # 通过send_keys方法再次输入内容
  print(ele.get_property('value')) # 获取搜索框中的内容:get_property('value')
  print(ele.get_attribute('name')) # 获取元素的属性:get_attribute()
  print(ele.tag_name) # 获取元素的tag name:tag_name
  sleep(3)
  driver.quit()
  ●clear方法在处理有提示信息(placeholder这个属性)的搜索框的时候很有用,一般需要先使用clear,再使用send_keys
  按钮
  ◆元素属性
  我们来看一下按钮的元素属性,常见按钮有3种类型:button按钮、submit按钮、radio按钮。 
  button按钮
  from selenium import webdriver
  from time import sleep
   
  driver = webdriver.Chrome()
  driver.get("http://sahitest.com/demo/clicks.htm")
  driver.find_element_by_xpath("/html/body/form/input[3]").click()
  sleep(2)
  text = driver.find_element_by_name("t2").get_attribute('value')
  if text == '[CLICK]':
        print('pass')
  driver.quit()
  submit按钮
  from time import sleep
   
  driver = webdriver.Chrome()
  driver.get('https://www.baidu.com/')
  driver.find_element_by_id('kw').send_keys('storm')
  driver.find_element_by_id('su').submit() # 对于submit按钮,可以使用submit方法
  sleep(2)
  driver.quit()
  radio按钮
  ●单击:click方法。●判断是否选中:is_selected方法。
  这三种按钮都是input标签,不一样的只是type。 
  from selenium import webdriver
  from time import sleep
   
  driver = webdriver.Chrome()
  driver.get("http://sahitest.com/demo/clicks.htm")
   
  ele = driver.find_element_by_xpath('/html/body/form/input[7]')#注意这种xpath写法很不好
  ele.click()
  sleep(2)
  if ele.is_selected():
        print('pass')
  sleep(3)
  driver.quit()
  button按钮不支持submit方法。
  复选框 
  ◆元素属性<input>标签,type="checkbox"
  ●模拟单击选中复选框:ele.click()。
  ●模拟按空格键选中复选框:ele.send_keys(Keys.SPACE)。
  from selenium import webdriver
  from time import sleep
  from selenium.webdriver.common.keys import Keys
   
  driver = webdriver.Chrome()
  driver.get("http://sahitest.com/demo/clicks.htm")
  ele = driver.find_element_by_xpath('/html/body/ul//input')
  ele.click()
  sleep(2)
  if ele.is_selected():
        print('pass')
  sleep(2)
  ele.send_keys(Keys.SPACE)  #自己可以手动实践一下,按空格键可以选中或取消选中复选框
  sleep(2)
  driver.quit()
  假如我们想将一组复选框全都选中,该如何操作呢?
  示例:
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <title>CheckBox</title>
  </head>
  <body>
  下面是一组复选框:
      <br>
      <input type="checkbox" name="a">
      <br>
      <input type="checkbox" name="a">
      <br>
      <input type="checkbox" name="a">
  </body>
  </html>
  from selenium import webdriver
  from time import sleep
   
  driver = webdriver.Chrome()
  driver.get('C:\\Users\\Desktop\\my_html.html')
  eles = driver.find_elements_by_name('a') # 通过name定位一组元素
  for ele in eles: # 循环读取每个复选框
        ele.click()  # 单击
        sleep(2)
   
  driver.quit()
  这组复选框都有一个相同的name属性值,因此,可以通过name来定位一组元素,并将其存成一个列表,然后循环读取并操作列表即可。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号