繁体   English   中英

查找具有特定类名的元素

[英]Find elements with specific class name

对于chrome,我安装了ChroPath在页面上查找元素。

我想在Instagram页面上为类似元素找到XPath,但似乎不起作用:

//span[contains(@class,'glyphsSpriteHeart__outline__24__grey_9 u-__7')] 

另外,我尝试:

/html[1]/body[1]/div[3]/div[1]/div[2]/div[1]/article[1]/div[2]/section[1]/span[1]/button[1]/span[1]

当硒点击:

elenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"div._2dDPU.vCf6V div.zZYga div.PdwC2._6oveC article.M9sTE.L_LMM.JyscU div.eo2As section.ltpMr.Slqrh span.fr66n button.coreSpriteHeartOpen.oF4XW.dCJp8 > span.glyphsSpriteHeart__outline__24__grey_9.u-__7"}

如何找到XPath? 有什么好的扩展名吗?

这可能会有所帮助: https : //selectorgadget.com/

同样,这也是为了了解您要操作的内容: https : //www.w3schools.com/xml/xpath_syntax.asp

对于您使用索引编号(即:/ html [1] / body [1])从树上掉下来的示例,站点中的微小更改将使脚本失败。 找到一种方法来构建更强大的功能! 如果您预先知道对象的外观,还可以查看CSS选择器。

要在instagram上获得所有类似的按钮,请使用以下CSS选择器:

span[aria-label="Like"]

您可以在此处获得一些有用的详细信息: https : //www.w3schools.com/cssref/css_selectors.asp

如何找到XPath? 有什么好的扩展名吗?

您无法“找到”元素的Xpath。 有很多可以找到任何元素的XPath。 有些会稳定,有些会不稳定。 根据您对Selenium的了解和经验,以及您对被测应用程序的编写和行为方式的了解,来决定要使用哪个Xpath。

如果您正在寻找一种可以尝试不同XPath的工具,那么Chrome的内置开发人员工具控制台可让您同时测试Xpath和CSS选择器; 在此处输入图片说明

在按类名查找元素的特定方案中,CSS选择器比XPath更好,因为CSS选择器会将多个类视为数组,因为XPath将“类”视为文字字符串,因此,为什么需要使用“包含”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM