2017-10-11 15 views
0

Pouvons-nous écrire une classe dans notre cadre Selenium pour identifier le localisateur de sorcière est passé par l'utilisateur? Cela signifie.Résoudre web Locator dans Selenium Java

public class ResolveLocator { 
    static WebDriver driver; 
    static String uiUsernameTXT = "//input[@id='username']"; 

    public static WebElement ResolveLocatorL(String uiElement) { 


     String checkLType = uiElement.toString(); 
     WebElement returnLType = null; 

     switch (checkLType.charAt(0)) { 
     case '/': returnLType = driver.findElement(By.xpath(uiElement)); break; 
     case 'c': returnLType = driver.findElement(By.cssSelector(uiElement)); break; 
     case 'i': returnLType =driver.findElement(By.id(uiElement));; break; 
     case 'l': returnLType = driver.findElement(By.linkText(uiElement)); break; 
     } 

     return returnLType; 
    } 
} 

Si l'utilisateur passe un XPath comme un localisateur de cette classe doivent identifier et renvoyer un bloc de code correct du sélénium.

+0

xpath ne commence pas toujours par/ –

+0

pourquoi vous avez besoin de cela ?? puis-je demander? –

+0

Je prévois de maintenir une classe différente en tant que carte d'objet. –

Répondre

0

plutôt que charAt (0), nous pouvons utiliser la convention de nommage pour trouver facilement

uiUsernameTXT_xpath= //so and so 

que nous écrivons sous forme de chaînes. diviser la chaîne avec "_" et aller pour le dernier et retourner le type d'emplacement. autre bon à utiliser Par opérateur

static By uiUsernameTX=By.xpath(".//* so and so");