2017-01-05 1 views
0

Vermeidung der folgenden WebElements Nachdem in meiner Klasse definiertFindBy voll XPath

@FindBy(xpath = ".//div[contains(@id, 'myform')]") 
private WebElement form; 

@FindBy(xpath = ".//div[contains(@id, 'myform')]"+ "/div/div/div/fieldset/div/div/div/div/div/div/div/input[contains(@id, 'name')]") 
private WebElement name; 

ich bin der Lage, ein Tastaturbefehle auf den Namen WebElement zu lokalisieren und zu tun. Jedoch "/ div/div/div/feldset/div/div/div/div/div/div/div /" sieht nicht gut aus. Wie kann ich es vermeiden und dennoch mein Element finden?

Antwort

0

Verwenden

.//div[contains(@id, 'myform')]//fieldset//input[contains(@id, 'name')] 
0

Wenn Sie id dieses Elements haben, dann können Sie direkt das Element suchen mit EG- es

@FindBy(id= "name") 

Obwohl Sie versuchen können, zu xpath in dieser Art und Weise mit -

@FindBy(xpath = "//input[contains(@id, 'name')]") 

oder

@FindBy(xpath = "//div[contains(@id, 'myform')]//input[contains(@id, 'name')]") 
0

Es ist besser, die ID zu verwenden, wenn sie verfügbar ist. Also, ID mit der Erklärung wäre:

@FindBy(id = "name"); 

Aber wenn man so will x-Pfad verwenden dann versuchen, es in kürzester Form:

@FindBy(xpath = "//input[@id ='name']"); 
Verwandte Themen