Selenium 硒元素功能

Selenium 硒元素功能,selenium,selenium-webdriver,nightwatch.js,Selenium,Selenium Webdriver,Nightwatch.js,code.google.com上的文档将ElementIdeElement功能描述为“从已识别的元素开始搜索页面上的元素”。这是否意味着在网页的其余部分中搜索该元素后面的每个元素,还是只搜索该元素的从属元素 如果是前者,那么如果“using”参数是“css selector”,并且我希望找到当前元素的同级元素的后代,那么我将如何构造“value”条目?我以为值应该是“+div.classname”,但这似乎不起作用。一种方法是通过模拟Selenium ByChained,通过依次调用wait:

code.google.com上的文档将ElementIdeElement功能描述为“从已识别的元素开始搜索页面上的元素”。这是否意味着在网页的其余部分中搜索该元素后面的每个元素,还是只搜索该元素的从属元素


如果是前者,那么如果“using”参数是“css selector”,并且我希望找到当前元素的同级元素的后代,那么我将如何构造“value”条目?我以为值应该是“+div.classname”,但这似乎不起作用。

一种方法是通过模拟Selenium ByChained,通过依次调用wait:

browser
  .useXpath()
  .url('http://www.google.com')
  .waitForElementVisible('.//body', 1000)
  .waitForElementVisible(".//div[contains(@class, 'classVar')]")
  .click('button')

对于存在另一个具有给定类的元素,用于导航到元素的父元素的以下同级元素的正确xpath字符串为

“(//div[@id=“currentElementID”]/../以下同级::*[1]//div[contains(@class,“classToLookFor”))[1]””


在本例中,我知道当前元素的ID,所以我使用它,但是“//div[@ID=“currentElementID”]”可以替换为导航到起始元素所需的任何内容。此外,本例假设我要查找的元素是一个div。

不确定您的示例显示的是什么语言/环境,但它看起来与我见过的任何东西都不一样。为了澄清,我的编码环境是使用selenium和nightwatchjs的javascript。@BrynWolfe-你是对的。默认情况下,Nightwatch没有接受2个参数作为ByChained定位器的
expect.element
。不过,也许可以添加一些内容。我在您的问题中添加了
nightwatch
标记。我没有使用
nightwatch.js
的经验,但我更新了我的问题以尝试回答。感谢您将我的问题添加到nightwatch。我不知道该怎么做。至于您修改过的代码示例,我看不出这如何解决我的问题。假设我调用browser.element获取元素编号。使用该元素引用,我现在想转到它的父元素,找到父元素的同级元素,看看它是否包含与原始元素相同类的元素。我可以使用ElementIdeElement通过xpath选择器(“..”)转到父级,但从那里我不清楚如何才能到达所需的元素。。。获取父元素(只要在xpath上使用../符号),然后第二个.waitFor获取该元素的相对元素。@djangofan此“解决方案”仅适用于绝对路径和selenium的browser.element方法的夜间监视调用。使用上述xpath无法匹配的每次迭代都会在字符串的“/../”部分插入另一个“../”。但是,随着每次迭代的路径变长,它会持续变长。我想使用ElementIdeElement从当前元素开始,而不是从绝对路径开始,但无法理解语法。不幸的是,Firepath似乎不支持“当前元素”的概念,例如键入“.”goes to,而不是当前元素。Nevermind。我误解了从nightwatch/selenium得到的有点神秘的错误消息,这让我相信相对xpath选择器不起作用,而事实上它是ElementIdeElement的一个缺失参数。相对xpath字符串正是我所认为的,即“(../following sibling::*[1]//div[contains(@class,“classToLookFor”))[1]”