【发布时间】:2019-05-12 21:57:30
【问题描述】:
我目前正在使用 Selenium/Webdriver 测试一个网站,该网站在几个框中显示人员的姓名和地址。例如,每个框都包含一个名字字段。所有这些字段都生成了ID,所以我不能使用它们。
我的方法是先找到盒子,然后再找到我要寻找的元素。我使用这样的 xPath 表达式,有点复杂,但对于问题,这种方式更容易
WebElement box3 = driver.findElement(By.xpath("//div[contains(@boxnum,'3')]");
WebElement firstName = box3.findElement(By.xpath(".//div[contains(@field,'firstname')]/input");
我也知道有绝对和相对 xPath 表达式,但显然我还没有真正理解它。如果我省略了在 xPath 中搜索 firstName 元素的前导点,则会找到第一个框中的名字字段。但是,我认为我不需要这个,因为我从“box3”开始搜索。不幸的是,我还没有找到以我理解的方式向我解释这一点的文档。我希望这里有人可以解释一下。
【问题讨论】:
-
你能发布网址或至少相关的html吗?
-
对不起,这是一个内网App
-
您至少需要提供相关的 html 和您的预期输出,否则 OP 如何帮助您
-
不要误会我的意思,但为什么需要 html?我的问题是,为什么第二个 xpath 表达式搜索整个 Dom,而不是仅使用从已经成功定位的元素“box3”开始的页面部分?