Question
Je le code suivant:
public class Search {
private Desktop desktop = new Desktop();
@Before
public void baseState() {
BrowserBaseState baseState = new BrowserBaseState("silk4j.settings");
baseState.execute(desktop);
}
@Test
public void searchNames() {
desktop.<BrowserApplication>find("//BrowserApplication").<BrowserWindow>find("//BrowserWindow").<DomButton>find("//INPUT[@id='edit-submit']").select();
}
}
j'ai pu tronquer la méthode d'essai à ceci:
public class Search {
private Desktop desktop = new Desktop();
BrowserApplication app;
@Before
public void baseState() {
BrowserBaseState baseState = new BrowserBaseState("silk4j.settings");
app = baseState.execute(desktop);
}
@Test
public void searchNames() {
app.<BrowserWindow>find("//BrowserWindow").<DomButton>find("//INPUT[@id='edit-submit']").select();
}
Comment puis-je tronque encore la méthode? Je voudrais être en mesure d'utiliser quelque chose comme ceci:
win.<DomButton>find("//INPUT[@id='edit-submit']").select();
au lieu de ce trapu à long:
desktop.<BrowserApplication>find("//BrowserApplication").<BrowserWindow>find("//BrowserWindow").<DomButton>find("//INPUT[@id='edit-submit']").select();
S'il vous plaît coller toute la classe dans votre réponse?
La solution
public class Search {
private Desktop desktop = new Desktop();
BrowserWindow win;
@Before
public void baseState() {
BrowserBaseState baseState = new BrowserBaseState("silk4j.settings");
win = baseState.execute(desktop).find("//BrowserWindow");
}
@Test
public void searchNames() {
win.<DomButton>find("//INPUT[@id='edit-submit']").select();
}
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow