Javascript Selenium Webdriver.By中所有静态函数的单行

Javascript Selenium Webdriver.By中所有静态函数的单行,javascript,selenium-webdriver,automated-tests,Javascript,Selenium Webdriver,Automated Tests,是否可以用一条线替换上面的所有右侧;说 var findById = driver.findElement(By.id("id")) var findByClass = driver.findElement(By.className("class")) var findByXpath = driver.findElement(By.xpath("xpath")) 我理解这是一个摆弄引号的问题,但ans似乎让我难以理解。如果您使用cssSelector而不是xpath,您可以使用或,。例如htm

是否可以用一条线替换上面的所有右侧;说

var findById = driver.findElement(By.id("id"))
var findByClass = driver.findElement(By.className("class"))
var findByXpath = driver.findElement(By.xpath("xpath"))

我理解这是一个摆弄引号的问题,但ans似乎让我难以理解。

如果您使用
cssSelector
而不是
xpath
,您可以使用或
。例如html

var dynamicLocator = "id" | "className" | "xpath";
var find = driver.findElement(By.dynamicLocator("something"))
这将返回它通过ID
targetId
或class
targetClass
或class
targetClass
找到的第一个元素,该元素是class
parentClass
元素的直接子元素(使用
xpath
它看起来像
/div[@class='parentClass']/div[@class='targetClass']

上面代码中的“something”是“id”或“className”或“xpath”属性的实际值?此外,通过上面的dynamicLocator方法,是否要将输入值与变量dynamicLocator中存在的每个属性的值相匹配?
<div class="parentClass">
  <div id="targetId" class="targetClass"></div>
</div>
By dynamicLocator = By.cssSelector("#targetId, .targetClass, .parentClass > .targetId");