2017-01-04 4 views
0
var findById = driver.findElement(By.id("id")) 
var findByClass = driver.findElement(By.className("class")) 
var findByXpath = driver.findElement(By.xpath("xpath")) 

のすべての静的関数の単一行は、上記のすべての行を1行で置き換えることは可能です。たとえばSelenium Webdriver.By

var dynamicLocator = "id" | "className" | "xpath"; 
var find = driver.findElement(By.dynamicLocator("something")) 

私はそれが引用符をつけていることを理解していますが、ansは私を逃しているようです。

+0

上記の "something"は、 "id"または "className"または "xpath"属性の実際の値ですか?さらに、上記の** dynamicLocator **メソッドを使用して、入力値を変数dynamicLocatorにある各属性の値と一致させますか? – Mahipal

答えて

0

xpathの代わりにcssSelectorを使用する場合は、,を使用できます。例えば、あなたが

By dynamicLocator = By.cssSelector("#targetId, .targetClass, .parentClass > .targetId"); 

を行うことができ、HTML

<div class="parentClass"> 
    <div id="targetId" class="targetClass"></div> 
</div> 

のためにこれはクラスtargetClass魔女とID targetIdによって、またはクラスtargetClassまたは要素によってそれが創設最初の要素を返しますクラスを持つ要素の直接の子であるparentClassxpathの場合は//div[@class='parentClass']/div[@class='targetClass']のようになります)。