为什么不优先使用xpath定位的简单介绍

hacker|
119

文章导读:

selenium新手求助,关于一个元素的定位

xpath定位,你用chrome浏览器,在页面上右键-》审查元素,然后会弹出开发者工具,里面会显示你选中部分的页面源码并高亮你选择的地方,在源码里右键,选择copy xpath 用这个定位。

首先,selenium webdriver识别元素是个大难题,甚至有时候为了元素能够正确识别,甚至会延长等待时间,脚本执行的正确性比速度重要些。

然后再说IE Driver,如果用IE执行测试,不建议用xpath selecter定位,因为IE对xpath的支持不是很好,建议尽可能用id、name等定位方法,或者使用Css selecter。

当然,如果脚本很简单,纯追求速度的话,可以使用HtmlUnitDriver,不用打开浏览器运行测试,速度很快,但是限制也比较多,还要你自己实践研究了。

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

没找准定位基准吧。

selenium使用Xpath定位之完整篇

主题 Xpath Selenium

其中有一片文章提到了xpath元素定位,但是该文章中有些并不能适应一些特殊与个性化的场景。在文本中提供xpath元素的定位终极篇,你一定能在这里找到你需要的解决办法。

第一种方法:通过绝对路径做定位(相信大家不会使用这种方式)

By.xpath("html/body/div/form/input")

By.xpath("//input")

第三种方法:通过元素索引定位

By.xpath("//input[4]")

第四种方法:使用xpath属性定位(结合第2、第3中方法可以使用)

By.xpath("//input[@id='kw1']")

By.xpath("//input[@type='name' and @name='kw1']")

第五种方法:使用部分属性值匹配(最强大的方法)

By.xpath("//input[start-with(@id,'nice')

By.xpath("//input[ends-with(@id,'很漂亮')

By.xpath("//input[contains(@id,'那么美')]")

第6种方法:使用xpath轴(未曾使用)

希望,以上这些方法,能够帮助到你。

appium python xpath 定位问题,新手问题。

按照你的想法,在ListView前面的那个LinearLayout

应该为LinearLayout[1]\ListView[0],至于原因,想想数组的调用

xpath的获取,如果是网页端的很方便

用chrome, 选中你要获取的元素右键鼠标,审查元素。然后在开发者窗口中,定位到的代码处,右键鼠标,有个copy xpath,点击即可

公司限制,莫法给你图片演示了

appium使用xpath定位元素并点击,为什么查找不到元素呢

这样定位会报错。xpath是按照树的层级一层一层识别元素。在uiautomatorviewer,识别到的元素前缀都是从0开始,而转换成xpath,是需要从1开始的,类似第一个层级,第二个层级

driver.findElementByXPath(

"//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.EditText[1]");

改写下定位元素到1,继续调试下

使用scrapy做爬虫,xpath选择器为什么无法定位到网页的某些节点

你先把网页的源码下载到文本上,从源码上面为基础来提取。可能是你的xpath的写法有问题。目前我还没见过用xpath提取不到的,当然,也可能是我见识还太少的缘故。

selenium通过xpath定位时,后台报错org.openqa.selenium.NoSuchElementException:

推测原因如下,请进行排查:

原因1:xpath指定位置处还未展现出来,自动化已经进行点击,从而找不到该元素,解决办法就是加入等待时间,thread.sleep(3000);以上为3秒。

原因2:xpath指定位置受前后的影响,比如需要先点击一下其他内容,才能展现,所以需要处理。

建议:

xpath定位建议使用相对路径定位,你使用的绝对路径定位。

1条大神的评论

  • avatar
    访客 2022-07-28 上午 04:11:26

    t[1]\ListView[0],至于原因,想想数组的调用xpath的获取,如果是网页端的很方便用chrome, 选中你要获取的元素右键鼠标,审查元素。然后在开发者窗口中,定位到的代码处,右键鼠标,有个copy xpath,点击即可公司限制,莫法给你图片演示了appium使用x

发表评论