相信大家有时候,我们在用firepath(不会的请点这里)查看元素的XPath信息,发现没有可以用来定位的id信息,这个时候我们就需要考虑用其他的可用的来定位元素。本文介绍如何通过元素节点中class name的值来定位页面元素。还是以百度首页,搜索输入框定位举例:
XPath截图:
相关脚本代码如下:
# coding=utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(6) driver.get("https://www.baidu.com") try: driver.find_element_by_class_name("s_ipt") print ('test pass: element found by class name') except Exception as e: print ("Exception found", format(e)) driver.quit()
意见:很多情况下,class利用要比id多,如果class中出现了太长的字符,和可变化的数字,那么请回到用XPath定位方法。
(软件测试交流:1140267353,还会有同行一起技术交流,同时还有海量免费学习资料)
下文介绍如何通过节点中name的值来定位这个web元素。还是来看百度首页搜索输入框,通过name的值来定位。
相关脚本代码:
# coding=utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(6) driver.get("https://www.baidu.com") try: driver.find_element_by_name("wd") # 这里百度搜索输入框有name = 'wd'这个节点信息 print ('test pass: element found by name value') except Exception as e: print ("Exception found", format(e)) driver.quit()
总结:name这个属性不是所有的节点都有,如果有建议采用name的值来定位,就和by_id, by_class一样的效果。
上一篇 Python+Selenium练习篇之3-利用link text/partial link text定位元素
下一篇 Python+Selenium练习篇之5-利用css定位元素
以上仅供参考和借鉴,希望对你有所帮助!
点个关注不迷路
小枫文章整理不易,欢迎各位朋友点赞关注!