C # Selenium: передача переменной в XPath

поле private доступно в классе / объекте, в котором объявлено поле. Он является частным для других классов / объектов за пределами того, в котором он находится.

1
задан zx485 20 February 2019 в 21:09
поделиться

2 ответа

Этого можно добиться, встраивая переменную в строку XPath:

IWebElement webElement2 = driver.FindElement(By.XPath("//a[normalize-space(.)='" + myVar + "' and @_ngcontent-c32]"));
0
ответ дан Lews Therin 20 February 2019 в 21:09
поделиться

На этот вопрос уже дан ответ. Однако я рекомендовал вам добавить этот метод в ваш скрипт для обработки NoSuchElementException , когда ваш xpath не найден или недействителен, а также для обработки других исключений.

   public static bool existsElement(IWebDriver _driver,By by,int waitBySecond,string message)
    {
        WebDriverWait wait = new WebDriverWait(_driver, new TimeSpan(0, 0, waitBySecond));

        wait.Message = message;

        try
        {
            // check _driver.FindElement(by) or wait element to check

        }
        catch (WebDriverTimeoutException ex)
        {
            Console.WriteLine("Message : " + ex.Message);
            Console.WriteLine("StackTrace: " + ex.StackTrace);

            return false;
        }

        catch(NoSuchElementException ex)
         {
           Console.WriteLine("Message : " + ex.Message);
           Console.WriteLine("StackTrace: " + ex.StackTrace);
          return false;
         }
        catch(Exception e)
        {
            Console.WriteLine("Message : " + wait.Message);
            Console.WriteLine("StackTrace: " + ex.StackTrace);

            return false;
        }



        return true;
    }
0
ответ дан Mr.Kim 20 February 2019 в 21:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: