selenium 中xpath定位的几种方式

Posted 二零一五

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium 中xpath定位的几种方式相关的知识,希望对你有一定的参考价值。

#-*-coding:utf-8-*-
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains


driver = webdriver.Firefox()

url = "https://www.baidu.com/"
# url = "https://home.cnblogs.com/u/tDayUp/"
driver.get(url)
"""通过tag *号匹配标签定位 一 """
# driver.find_element_by_xpath("//*[@id =\'kw\']").send_keys(u"博客园")
# driver.find_element_by_xpath("//*[@autocomplete =\'off\']").send_keys(u"博客园")
# driver.find_element_by_xpath("//*[@class =\'s_ipt\']").send_keys(u"博客园")
# driver.find_element_by_xpath("//*[@name =\'wd\']").send_keys(u"博客园")

"""通过指定标签名称定位 二 """
# driver.find_element_by_xpath("//input[@id =\'kw\']").send_keys(u"博客园")
# driver.find_element_by_xpath("//input[@autocomplete =\'off\']").send_keys(u"博客园")
# driver.find_element_by_xpath("//input[@class =\'s_ipt\']").send_keys(u"博客园")
# driver.find_element_by_xpath("//input[@name =\'wd\']").send_keys(u"博客园")

"""组合属性定位元素 多个元素共同定位 三"""
# driver.find_element_by_xpath("//input[@id=\'kw\' and @name=\'wd\']").send_keys(u"博客园")
# driver.find_element_by_xpath("//input[@id=\'kw\' or @name=\'wd\']").send_keys(u"博客园")


"""绝对路径定位:手写失败, 一般也不会用到 四"""
# driver.find_element_by_xpath("//#wrapper/#head.head_wrapper/.s_form/.s_form_wrapper/.fm/.bg/.s_ipt").send_keys(u"博客园")

"""xpath 文本定位 五"""
# driver.find_element_by_xpath(".//*[text()=\'新闻\']").click()
# print driver.find_element_by_xpath(".//*[text()=\'新闻\']").text

"""层级定位 六"""
# driver.find_element_by_xpath("//form[@id =\'form\']/span/input").send_keys(u"博客园")

"""通过索引定位 七"""
# dj = driver.find_element_by_xpath(".//*[@id=\'u1\']/a[8]")
# ActionChains(driver).move_to_element(dj).perform()
# sleep(2)
# #选择设置---搜索设置
# djxz = driver.find_element_by_link_text("搜索设置")
# ActionChains(driver).click(djxz).perform()
# sleep(2)
# yssz = driver.find_element_by_xpath(".//*[@id=\'nr\']")
# ActionChains(driver).click(yssz).perform()
## 通过索引定位
# ysszxz = driver.find_element_by_xpath(".//*[@id=\'nr\']/option[2]")
# ActionChains(driver).click(ysszxz).perform()

"""通过父层级查找八 失败------"""
# driver.find_element_by_xpath("*[@id =\'homepage1_HomePageDays_ctl00_ImageLink\']/../../../../../..").click()

"""模糊匹配 九"""
# #文字模糊
# driver.find_element_by_xpath("//a[contains(text(),\'新\')]").click()
# #属性匹配
# driver.find_element_by_xpath("//input[contains(@id,\'s_btn_wr\')]").click()

sleep(2)
driver.quit()

以上是关于selenium 中xpath定位的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

webdriver实例14-Xpath定位的几种方法

selenium使用Xpath定位之完整篇

selenium中为啥依据xpath定位html页面左边树形菜单无效

Xpath定位大全

selenium定位方法

Selenium2+Python3.6实战:定位下拉菜单出错,如何解决?用select或xpath定位。