селен - как найти xpath - PullRequest
0 голосов
/ 17 мая 2018

может помочь мне найти правильный xpath для данной ссылки Выйти

Ответы [ 2 ]

0 голосов
/ 17 мая 2018
driver.findElement(By.xpath("//a[text()='Logout']"))

Это один из способов.

driver.findElement(By.linkText("Logout"));

И то, и другое может быть проблематичным, если у вас есть более чем 1 logout ссылка на странице.

Дополнительные ресурсы по выбору элементов: https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/By.html

0 голосов
/ 17 мая 2018

Что вы можете сделать, это найти все ссылки на вашей странице, а затем подать одну, соответствующую тому, что вы ищете.

Вот код, преобразованный в java

public static IWebElement GetLinkContainingText(string textToBeContained) {
    //  Here Driver is my ChromeDriver instance. You can replace a, by whatever tag your href is in.
    ArrayList<WebElement> allTags = Driver.FindElements(By.Xpath("//a"));
    for (WebElement v : allTags) {
        if (v.GetAttribute(href).contains(textToBeContained)) {
            return v;
        }            
    }        
    return null;
}

вызов метода приведет к этому.

WebElement elementYouSeachFor = GetLinkContainingText("http://ec2-34-210-163-161.us-west-2.compute.amazonaws.com:8094/login/index/logout");

Скорее всего,

WebElement elementYouSeachFor = GetLinkContainingText("/logout");

тоже будет работать, поскольку на вашей странице, вероятно, не так много ссылок с выходом из системы.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...