Selenium3自动化测试【21】find_element定位元素

前面连载的内容,我们介绍了如下8种定位元素的方法。

  • find_element_by_id:通过元素的ID属性值来定位元素;
  • find_element_by_name:通过元素的name属性值来定位元素;
  • find_element_by_class_name:通过元素的class属性值来定位元素;
  • find_element_by_xpath:通过Xpath来定位元素;
  • find_element_by_tag_name:通过元素的tag name来定位元素;
  • find_element_by_css_selector:通过CSS选择器来定位元素;
  • find_element_by_link_text:通过元素标签对之间的文本信息来定位元素;
  • find_element_by_partial_link_text:通过元素标签对之间的部分文本信息来定位元素。
    而WebDriver还提供了另一种方法find_element(),其通过By来申明定位的方法,传入对应定位方法的定位参数。find_element()方法只用于定位元素。它需要传入了两个参数,第1个参数是定位的类型,由By提供(使用前需要通过from selenium.webdriver.common.by import By导入By),第2个参数是具体定位的方式。
    以搜索按钮元素为例,搜索按钮元素的html代码如下:
<input type="submit" class="b_searchboxSubmit" id="sb_form_go" tabindex="0" name="go">

对应的find_element()方法具体如下:

  • find_element(By.ID, "sb_form_go");
  • find_element(By.CLASS_NAME,"b_searchboxSubmit");
  • find_element(By.NAME,"go");
  • find_element(By.CSS_SELECTOR,".b_searchboxSubmit");
  • find_element(By.XPATH,"//*[@id='sb_form_go']");
  • find_element(By.LINK_TEXT,"") 由于搜素框元素没有Link text,所以对用属性值用替代;
  • find_element(By.PARTIAL_LINK_TEXT,"****");
  • find_element(By.TAG_NAME,"****") 。

以Bing搜索页为例。

  • 找到搜索框与搜索按钮元素;
  • 在搜索框中键入bella关键字;
  • 用鼠标单击搜索按钮;
  • 提交搜索请求。

通过By.ID的完整代码如下:

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
driver.get("http://cn.bing.com/")

driver.find_element(By.ID,value="sb_form_q").send_keys("bella")
driver.find_element(By.ID,value="sb_form_go").click()

sleep(1)
driver.quit()  

通过By.NAME的完整代码如下:

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
driver.get("http://cn.bing.com/")

driver.find_element(By.NAME,"q").send_keys("bella")
driver.find_element(By.NAME,"go").click()

sleep(1)
driver.quit()

通过By.CLASS_NAME的完整代码如下:

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
driver.get("http://cn.bing.com/")

driver.find_element(By.CLASS_NAME,value="b_searchbox").send_keys("bella")
driver.find_element(By.CLASS_NAME,value="b_searchboxSubmit").click()

sleep(1)
driver.quit()

通过By.XPATH的完整代码如下:

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
driver.get("http://cn.bing.com/")

driver.find_element(By.XPATH,"//*[@id='sb_form_q']").send_keys("bella")
driver.find_element(By.XPATH,"//*[@id='sb_form_go']").click()

sleep(1)
driver.quit()

通过By.CSS_SELECTOR的完整代码如下:

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
driver.get("http://cn.bing.com/")

driver.find_element(By.CSS_SELECTOR,".b_searchbox").send_keys("bella")
driver.find_element(By.CSS_SELECTOR,".b_searchboxSubmit").click()

sleep(1)
driver.quit()

如果你觉的文章读的不过瘾,可以查看详细的视频教程。
【2021】UI自动化测试:Selenium3自动化测试
https://ke.qq.com/course/3172187?tuin=9c43f38e

【测试全系列视频课程】请点击我哦.....

《全栈测试系列视频》课程

地址:https://ke.qq.com/course/2525707?tuin=9c43f38e

图书京东、当当有售

京东:https://item.jd.com/12784287.html
当当:http://product.dangdang.com/29177828.html)!

posted @ 2021-07-27 17:12  BlaLeo  阅读(419)  评论(0编辑  收藏  举报