xpath 相关问题

XPath的主要目的是解决XML文档的各个部分。它还提供操纵弦乐,数字和布尔值的基本设施。 XPath使用紧凑的非XML语法。 XPath在XML文档的抽象逻辑结构上运行,而不是表面语法。

Selenium webdriver-当所有产品都具有相同类别时如何选择产品(amazon.in)

我正在尝试自动化 amazone.in。我想点击特定产品。但在 Amazon.in 中,所有产品都有相同的类别。 产品1 我正在尝试使 amazone.in 自动化。我想点击特定产品。但在 Amazon.in 中,所有产品都有相同的类别。 产品1 <h2 class="a-size-medium s-inline s-access-title a-text-normal">Puma Men's Storm Ind Mesh Running Shoes</h2> 产品2 <h2 class="a-size-medium s-inline s-access-title a-text-normal">Nike Men's Eliminate Ii Mesh Running Shoes</h2> 我该如何继续? 下面是我的代码 driver.manage().window().maximize(); driver.get("http://amazon.in"); driver.findElement(By.id("twotabsearchtextbox")).sendKeys("shoes"); driver.findElement(By.id("twotabsearchtextbox")).submit(); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); driver.findElement(By.xpath("//h2[@class='a-size-medium s-inline s-access-title a-text-normal']")).click(); 是否可以使用“标题”标签单击元素? 您可以通过将产品名称添加到 xpath 中来缩小范围来解决此问题。 driver.findElement(By.xpath("//h2[@class='a-size-medium s-inline s-access-title a-text-normal' and contains(text(), \"Nike Men's Eliminate Ii Mesh Running Shoes\")]")).click(); 上面的代码将点击第一个产品。您只需替换产品名称即可点击相关产品。 您可以通过以下方法来实现, Xpath 轴 text()='' 索引 Xpath 如上所述。 大多数问题都有不止一种解决方案。祝一切顺利。

回答 2 投票 0

选择子字符串的多个节点的 xpath 具有无效标记

xml 文档在注释节点中包含注释,如下所示: 09/28/2021 22:21:31user1 [1] 文件已上传 09/28/2021 22:22:47user2 [2] ...

回答 1 投票 0

Xpath 表达式清晰度 - Java Selenium

我通过点击 YouTube 视频趋势部分来练习 XPath。在趋势部分,我想单击第二个视频,无论存在哪个视频。我已经写了...

回答 1 投票 0

使用XPath和Python的lxml模块,如何验证节点的路径?哈利·波特

我将 XPath 与 Python 的 lxml 模块一起使用,并具有以下 xml 代码。 哈利·波特 我将 XPath 与 Python 的 lxml 模块一起使用,并具有以下 xml 代码。 <library> <section1> <book> <title>Harry Potter</title> <author>J.K. Rowling</author> </book> </section1> <section2> <book> <title>Sapiens</title> <author>Yuval Noah Harari</author> </book> </section2> </library> 现在我有一些 title 节点:titles = root.xpath('//title')。如何验证标题是否是 xml 根的子节点 section1 的后代?由于某种原因,我必须先获取标题,然后进行验证。像这样的东西: if validation: do_sth() 由于 <library> 是根,文件中的所有内容都是 <library> 的后代,因此没有必要对其进行测试。除此之外,如果您正在寻找 <title> 的后代 <section1>,请尝试: from lxml import etree books = """[your xml above]""" doc = etree.XML(books) for title in doc.xpath('//title[ancestor::section1]'): print(title.text) 这种情况下的输出应该是 Harry Potter

回答 1 投票 0

我可以在 Notepad++ 中创建 XPATH 表达式并将结果粘贴到电子表格中吗?

这是我的源xml 这是我的源xml <?xml version="1.0" encoding="UTF-8"?> <file> <Dog ID="Rover" Breed="Sheep Dog"> <feature name="Trick1"> <value> <trick>Roll Over</trick> </value> </feature> <feature name="Trick2"> <value> <trick>SheepToBarn</trick> </value> </feature> </Dog> <Dog ID="Spike" Breed="Chihuahua"> <feature name="Trick1"> <value> <trick>Scream</trick> </value> </feature> <feature name="Trick2"> <value> <trick>Attack</trick> </value> </feature> <feature name="Trick3"> <value> <trick>PoopInPurse</trick> </value> </feature> </Dog> <Dog ID="Larry" Breed="Hound"> <feature name="Hunt1"> <value> <technique>FlushOutRabbits</technique> </value> </feature> <feature name="Hunt2"> <value> <technique>TreeRaccoons</technique> </value> </feature> </Dog> </file> 这是我的 XPath 表达式 //feature[contains(@name,'Trick')]/ancestor-or-self::/@ID |//feature[contains(@name,'Trick')]/ancestor-or-self:: /@Breed |//feature[contains(@name,'Trick')]/ancestor-or-self::*/@name | //特征[包含(@name,'Trick')]/值/trick 这是Notepad++的结果 我希望将剪贴板中的信息放入这样的工作表中。 我尝试了 Xpath,如图所示。 我有两个问题: 1-以表格形式获取 Notepad++ 结果 2-从 xml 中获取元素名称“feature”,以便可以在单元格 C1 中使用它。 我还没有弄清楚 Notepad++ 中的 Xquery,但我对 BaseX 中的 Xquery 有了一些兴趣 使用 XQuery(例如使用 BaseX online at this fiddle)你可以使用 declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization"; declare option output:method 'text'; declare option output:item-separator '&#10;'; //trick!string-join((ancestor::Dog!(@ID, @Breed),ancestor::feature!@name, .), ', ') 并获得例如 Rover, Sheep Dog, Trick1, Roll Over Rover, Sheep Dog, Trick2, SheepToBarn Spike, Chihuahua, Trick1, Scream Spike, Chihuahua, Trick2, Attack Spike, Chihuahua, Trick3, PoopInPurse

回答 1 投票 0

使用XPath和Python的lxml模块,如何检查节点在特定层次结构级别是否具有特定祖先节点哈利·波特

我将 XPath 与 Python 的 lxml 模块一起使用,并具有以下 xml 代码。 哈利·波特 我将 XPath 与 Python 的 lxml 模块一起使用,并具有以下 xml 代码。 <library> <section1> <book> <title>Harry Potter</title> <author>J.K. Rowling</author> </book> </section1> <section2> <book> <title>Sapiens</title> <author>Yuval Noah Harari</author> </book> </section2> </library> 假设我有一些从 lxml 的 title 方法获得的 .xpath 节点。如何检查其中一些是否有 section1 祖先,它是 library 根节点的子节点? 由于 <library> 是根,文件中的所有内容都是 <library> 的后代,因此没有必要对其进行测试。除此之外,如果您正在寻找 <title> 的后代 <section1>,请尝试: from lxml import etree books = """[your xml above]""" doc = etree.XML(books) for title in doc.xpath('//title[ancestor::section1]'): print(title.text) 这种情况下的输出应该是 Harry Potter

回答 1 投票 0

如何使用Python中的nodriver库通过XPath访问网页上的元素?

我尝试编写 wait_for_xpath 函数,但无法使用 dom.py 模块创建 Element 类来与网页上的元素进行交互。 这是代码: 异步 def wait_for_xp...

回答 1 投票 0

如何将值从下拉菜单中的可用部分移动到选定部分

在 Selenium WebDriver 中使用 selectByVisibleText() 方法时,它会正确突出显示下拉列表中所需的选项,但不会从“可用值”秒中移动所选值...

回答 1 投票 0

使用 XSLT 1.0 在多个 XML 元素中应用默认值

我正在使用 XSLT 1.0。需要使用 XSLT 对所有空白 XML 元素应用默认值。例如,下面是输入 XML: 我正在使用 XSLT 1.0。需要使用 XSLT 对所有空白 XML 元素应用默认值。例如,下面是输入 XML: <employee> <id attributeName="attributeValue">1111</id> <name attributeName="attributeValue" /> <address attributeName="attributeValue" /> </employee> 此处 XML 元素名称和地址的值为空。我需要用默认值填充这些值,以便 XML 如下所示: <employee> <id attributeName="attributeValue">1111</id> <name attributeName="attributeValue">default</name> <address attributeName="attributeValue">default</address> </employee> 有人可以建议我如何使用 XSLT 1.0 来做到这一点吗?抱歉,如果这个问题很幼稚,因为我不是 XSLT 方面的专家。 修改没有任何子节点(包括文本)的节点就足够了: <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match='@* | node()'> <xsl:copy> <xsl:apply-templates select='@* | node()'/> </xsl:copy> </xsl:template> <xsl:template match="*[not(*)]"> <xsl:copy> <xsl:copy-of select="@*" /> <xsl:text>default</xsl:text> </xsl:copy> </xsl:template> </xsl:stylesheet> <employee> <id attributeName="attributeValue">1111</id> <name attributeName="attributeValue">default</name> <address attributeName="attributeValue">default</address> </employee>

回答 1 投票 0

如何通过python selenium解析随机类名元素?

虽然有一些关于这个主题的文章,但我找不到如何解决我的问题,有人帮助我吗? HTML 源代码如下所示,我可以获取 'div style="height:100%;

回答 1 投票 0

使用 XSLT 迭代 XML 并将其转换为简单文本

我是一名初学者,仍在学习 XSLT。我有一个简单的 xml 代码如下: ...

回答 1 投票 0

与 XPath 一起使用时 AND 运算的行为

我对与 XPath 一起使用时 AND 运算的行为有疑问。目前,它在 XPath 中搜索时评估每个条件,即使第一个条件本身失败。 ...

回答 2 投票 0

如何用XPath获取下面的元素?

我有这样的HTML代码: b 洛雷姆·伊普苏姆 我想获取与 span 元素相关的文本 lorem ipsum。 我尝试过//fol...

回答 1 投票 0

根据第 1 列中的值,在具有 XPATH 的网格中选择第 2 列中的特定值

我正在Python中使用selenium来使用我的组织的特定网站自动跟踪活动的出席情况。与会者列表以网格形式构建,第 1 列包含姓名...

回答 1 投票 0

如何从oracle中的表中选择XML标签值?

我将xml值存储在oracle表中,如下所示。 ...

回答 1 投票 0

当所有 svg 元素具有相同的属性和值时,在 selenium-java 中处理 Svg 元素而不使用索引位置

在我的应用程序中,我有 200 个具有相同属性和值的 svg 元素 (//*[name()='svg'][@class='tree-node-icon']) 但是当我定位一个 svg 元素时,它会被定位,因为我使用了索引 po...

回答 1 投票 0

获取元素值的Xpath

我正在尝试使用 xpath 从我的 xml 文件中获取里程表的值: 我正在尝试使用 xpath 从我的 xml 文件中获取 Odometer 的值: <?xml version="1.0" encoding="UTF-8"?> <CWEAI xmlns="http://www.carrierweb.com/Schema/CWEAI_schema_1.0/cwReturnTruckCanbusHistory"> <cwReturnTruckCanbusHistory> <ID>549094411</ID> <CWVehicleID>109755</CWVehicleID> <Odometer>1374031</Odometer> <Fuel>452800</Fuel> <FuelLevel>1000</FuelLevel> </cwReturnTruckCanbusHistory> </CWEAI> 我已经尝试过任何事情,但我无法获得有效的 xpath: CWEAI/cwReturnTruckCanbusHistory/Odometer CWEAI/cwReturnTruckCanbusHistory/Odometer/text CWEAI[@xmlns="http://www.carrierweb.com/Schema/CWEAI_schema_1.0/cwReturnTruckCanbusHistory"]/cwReturnTruckCanbusHistory/Odometer text是Xpath函数,所以要正确使用它 /CWEAI/cwReturnTruckCanbusHistory/Odometer/text() 结果是Text='1374031' 使用 php 工作: $xml = simplexml_load_string($str); $ns = $xml->getNamespaces(true); $xml->registerXPathNamespace('c', current($ns)); $target = $xml->xpath('//c:CWEAI//c:cwReturnTruckCanbusHistory/c:Odometer/text()'); echo $target[0]; 3v4l.org 上的演示

回答 1 投票 0

如何find_element(By.XPATH)并在selenium中发送密钥?

尝试更新我的代码以使用“driver.find_element(By.XPATH...”而不是“driver.find_elements_by_xpath(...”),但是当我发送密钥时,我不断收到以下错误: 瑟...

回答 3 投票 0

如何获取元素的 XPath?

我正在尝试以编程方式获取网页元素的 XPath。 我正在 HTML 源中搜索特定模式,当我找到一个模式时,我会得到返回的字符串以及起始位置...

回答 3 投票 0

Selenium“无法使用 LINK_TEXT 或 XPATH 定位元素”

我正在使用此代码... 类浏览器: 浏览器,服务=无,无 def __init__(self, 驱动程序:str): self.service = 服务(驱动程序) self.browser = webdriver.Edge() #webdrive...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.