var findById = driver.findElement(By.id("id"))
var findByClass = driver.findElement(By.className("class"))
var findByXpath = driver.findElement(By.xpath("xpath"))
是否可以用一条线替换上面的所有右侧;说
var dynamicLocator = "id" | "className" | "xpath";
var find = driver.findElement(By.dynamicLocator("something"))
我理解这是摆弄引号的问题,但是我似乎无法回避。
答案 0 :(得分:0)
如果您使用cssSelector
代替xpath
,则可以使用,
。例如对于html
<div class="parentClass">
<div id="targetId" class="targetClass"></div>
</div>
你可以做到
By dynamicLocator = By.cssSelector("#targetId, .targetClass, .parentClass > .targetId");
这将返回由ID targetId
或类targetClass
创建的第一个元素,或者返回类targetClass
的元素.mace是类parentClass
的元素的直接子元素(带有xpath
它看起来像//div[@class='parentClass']/div[@class='targetClass']
)。