Как получить WebElement элемента управления на странице jsp, используя selenium + C # .NET - PullRequest
0 голосов
/ 07 мая 2019

enter image description here После входа на веб-сайт это приводит к следующему https://xxx.xxx -xxxx.com / xxx / xxx / content / container.jsp . На этой странице нет щелчка правой кнопкой мыши, чтобы просмотреть элемент для получения WebElements. Итак, нажатием F12 выбирается веб-элемент. Xpath копируется оттуда, написал сценарий селена и применил assert. При выполнении TestMethod выдается исключение NoSuchElementException или исключение тайм-аута.

Пожалуйста, дайте решение для этого

На этой странице jsp она содержит пункты меню Скажи пункт Х, пункт Y ... и так далее

Элемент Y проверяется следующим образом:

Элемент Y

Не могли бы вы сказать мне правильный формат его XPath, который будет определен при выполнении тестового примера:

driver.FindElement(By.XPath("//*[@id='subTabDivContainer']//a[text()='Item Y']")).Displayed)

Также, пожалуйста, дайте мне знать, отключен ли этот элемент управления. Если да, то как сделать его видимым при выполнении?

    try
    {

     if((driver.FindElement(By.XPath(
           "//[@id='subTabDivContainer']//a[text()='Item Y']")).Displayed))
           {
                Actions builder = new Actions(driver);
                builder.MoveToElement(driver.FindElement(By.XPath("//*@id='subTabDivContainer']//a[text()='Item Y']"))).Click().Build().Perform();
                Console.WriteLine(" Selenium mouse action has worked");

                NUnit.Framework.Assert.IsTrue(true);
            }
            else
            {
                NUnit.Framework.Assert.IsTrue(false);
            }
        }
        catch (NoSuchElementException ex)
        {
            NUnit.Framework.Assert.IsTrue(false);
        }

Ожидаемый результат: операция нажатия в элементе Y должна работать Фактический результат: генерируется исключение NoSuchElementException.

1 Ответ

0 голосов
/ 07 мая 2019

Попробуйте этот xpath, чтобы проверить, работает ли он.

Actions builder = new Actions(driver);
builder.MoveToElement(driver.FindElement(By.XPath("//a[contains(.,'My Timesheet')]"))).Click().Build().Perform();

OR

Actions builder = new Actions(driver);
builder.MoveToElement(driver.FindElement(By.XPath("//*[@id='subTabDivContainer']//a[contains(.,'My Timesheet')]"))).Click().Build().Perform();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...