selenium 中xpath定位的几种方式

#-*-coding:utf-8-*-from selenium import webdriverfrom time import sleepfrom 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()

原文地址:https://www.cnblogs.com/tDayUp/p/8729958.html

时间: 2024-12-13 14:36:25

selenium 中xpath定位的几种方式的相关文章

selenium中元素定位的常用方法

一.Selenium中元素定位共有八种 id name className tagName linkText partialLinkText xpath cssSelector 其中前六种都比较简单,通过id一般可以得到一个唯一的定位,其他五种要注意元素是否唯一,如果有多个,返回的是匹配的第一个元素.下面详细讲解一下xpath和cssSelector定位. 二.xpath定位 1.通过绝对路径定位 dr.findElement(By.xpath("/html/body/div[2]/div/di

用XPath精确定位节点元素&selenium使用Xpath定位之完整篇

在利用XSL进行转换的过程中,匹配的概念非常重要.在模板声明语句 xsl:template match = ""和模板应用语句xsl:apply-templates select = "" 中,用引号括起来的部分必须能够精确地定位节点.具体的定位方法则在XPath中给出. 之所以要在XSL中引入XPath的概念,目的就是为了在匹配XML文档结构树时能够准确地找到某一个节点元素.可以把XPath比作文件管理路 径:通过文件管理路径,可以按照一定的规则查找到所需要的文件

android 定位的几种方式介绍

[地理位置] android 定位的几种方式介绍 开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面 www.androidkaifa.com 总结了一下网络中现有对于介绍android定位的几种方式,希望对大家有帮助: android 定位一般有四种方法,这四种方式分别是:GPS定位,WIFI定准,基站定位,AGPS定位, (1) Android GPS:需要GPS硬件支持,直接和卫星交互来获取当前经纬度,这种方式需要手机支持GPS模块(现在大部分的智

android 定位的四种方式

[原文] 开发中对于地图及地理位置的定位是我们经常要用地,地图功能的使用使得我们应用功能更加完善,下面总结了一下网络中现有对于介绍android定位的4种方式,希望对大家有帮助: android 定位一般有四种方法,这四种方式分别是:GPS定位,WIFI定准,基站定位,AGPS定位,                             (1)Android GPS:需要GPS硬件支持,直接和卫星交互来获取当前经纬度,这种方式需要手机支持GPS模块(现在大部分的智能机应该都有了).通过GPS方

使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 选择调用的进程为 24 i386 getuid sys_getuid1647 i386 getgid sys_getgid16 使用库函数API方式 使用C代码中嵌入汇编代码方式

JAVA中集合输出的四种方式

在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public static void main(String[] args) throws Exception { Set<Person> javaProgramers = new HashSet<Person>(); javaProgramers.add(new Person("aaron&qu

实验--使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用(杨光)

使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 攥写人:杨光  学号:20135233 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验要求: 选择一个系统调用(13号系统调用time除外),系统调用列表参见http://codelab.shiyanlou.com/xref/linux-3.18.6/arch/x86/syscalls/sys

Android攻城狮 Android中更新UI的几种方式

Android中更新UI的几种方式: 1. Activity 的 runOnUiThread() 2. Handler 的 post() 3. Handler 的 sendMessage() 4. View 的 post() 1 public class FiveActivity extends Activity { 2 3 private TextView textView; 4 5 private Handler handler = new Handler() { 6 public void

java中设置代理的两种方式

1 前言 有时候我们的程序中要提供可以使用代理访问网络,代理的方式包括http.https.ftp.socks代理.比如在IE浏览器设置代理. 那我们在我们的java程序中使用代理呢,有如下两种方式.直接上代码. 2 采用设置系统属性 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 import jav