我试图定位页面上的特定元素,但无法找到要使用的适当Xpath。
以下是HTML(注意每个div的位置可能不同):
<div>
<label>First Name</label>
<span class="metadataField metadataFieldReadonly">
<input type="text" name="some-random-value" value="John">
</span>
</div>
<div>
<label>Last Name</label>
<span class="metadataField metadataFieldReadonly">
<input type="text" name="some-random-value" value="Smith">
</span>
</div>
我可以通过以下操作(使用JAVA)成功定位标签:
driver.findElement(By.xpath("//div/label[text()='Last Name']")).click();
并且我可以成功地定位第一个元素下的第一个输入(但我可能并不总是想要第一个元素):
driver.findElement(By.xpath("//div/span[@class='metadataField metadataFieldReadonly']/input")).click();
所以问题是(i)输入的名称标记和值总是不同的,所以它们不能用来选择元素;(ii)带有姓氏标签的div可能不总是第二个;(iii)标签和span是同一级别的(兄弟),所以我无法弄清楚如何正确地创建Xpath语句。
所以我需要知道如何将这两个XPath语句组合成一个复杂语句(假设它们在同一个div中,并且标签和span是同级):
//div/label[text()='Last Name']
//div/span[@class='metadataField metadataFieldReadonly']/input
谢谢
这非常简单://div[label[text()='last name']]/span[@class='metadata field metadatafieldreadonly']/input
-字面意思是,“span
中包含的input
和div
中包含的input
类,具有metadatafield
和metadatafield
和metadatafield
和metadatafield
类,其中包含具有文本‘last name'的label
”。所以您要使用这个标签来定位div,然后从它构建到您想要的输入。
为了更健壮,您不应该依赖类名的顺序--这不是规范所保证的。这样做会更强://div[label[text()='lastname']]/span[contains('',@class,''),'metadataField')and contains('',@class,''),'metadataFieldReadonly')]/input
。
基本上是新的反应,我有点困惑如何正确地传递组件之间的状态。我发现一个类似的问题已经出现了——将表单元素状态传递给兄弟/父元素的正确方法是什么?但是我想知道你能否给我一个关于下面代码的具体答案。 目前应用的结构包括: 父组件- 2个孩子:和 目标是对我的Meteor收藏进行异步搜索,并仅显示与搜索词匹配的
问题内容: 我正在尝试使用NHibernate 3.0的LINQ接口执行以下操作。我想查询一个对象(使用一些Where子句),并加载一些子代和孙代。目前,我正在这样做: 但是,这将导致所有子孙之间的笛卡尔积(每个结果行包含许多列)。这在这里由“ ayende”讨论。另一方面,我得到了一次往返,这与拆分查询然后进行合并不同。 在仍使用NHibernate的LINQ接口的情况下,如何更好地(在SQL和
问题内容: 我有两个同级元素,每个元素都包含动态内容。 在某些情况下,然后会有更多的内容,反之亦然。我希望第二个元素的高度始终等于第一个元素的高度。如果的高度更大,则其高度将溢出div,因此可以滚动。 有什么方法可以通过Flexbox做到这一点? 问题答案: 是的,有可能。让兄弟姐妹单独设置最大高度,并设置其他人的和,然后根据规范将其扩展到他们兄弟姐妹的高度。没有绝对定位。没有设置任何元素的高度。
本文向大家介绍JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法,包括了JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法的使用技巧和注意事项,需要的朋友参考一下 最近工作中总遇到取各种父啊子啊兄弟姐妹啊,每次都得查,这次整理个全乎的~ 先给大家上干货: 【js的获取方式】 【jQuery的获取方式】
有一个锚定标记,有时后跟一个或两个跨度标记。我必须根据与中文本的相等性比较来选择anchor的href 所有三个标签(achor,兄弟跨度1和兄弟跨度2) 两个标签(锚,兄弟姐妹1) 仅在锚标签中 在任何时候,上述对于锚定器的特定布置之一将是真实的,兄弟跨度1和兄弟跨度2。如果在上面的标签排列中找到文本,我希望该锚标签的href用于进一步处理。 示例:考虑下面的HTML片段 现在,我想从锚、跨度和
我试图找到正确的xpath表达式来选择包含特定文本的元素的父元素。 在下面的示例中,我希望选择文本匹配为“4”或任何其他数字的“span”元素,并且父元素与文本“Rooms”匹配: 我的XPath示例-匹配“div”元素中的每个“span” 源代码 我想要的是选择包含数字4的“span”元素作为文本,但html可能会更改,可能只有两个或一个“span”元素,如下例所示: 或