Как получить текст из элемента через Selenium и C # - PullRequest
0 голосов
/ 03 января 2019

Как я могу получить номер 2.22 из этого кода?

<div class="crash-row crash-0d54ae895d62d03cfb4bdcb502109630">
    <div class="col bold h-col-1 c-green">2.22</div>
    <div class="col h-col-2">-</div>
    <div class="col h-col-3">-</div>
    <div class="col h-col-4">-</div>
    <div class="col h-col-5">
        <a href="javascript:;" class="show-code">0d54ae895d62d03cfb4bdcb502109630</a>
    </div>
    <div class="col h-col-6">
        <a href="javascript:;" class="show-code">8d76a8fa2b7613de95a7e13852055c77d013f441952a231c47ca0872bcdd64df</a>
    </div>
        <div class="clear">
    </div>
</div>

Я пробовал этот код, но он не работает! Примечание: XPATH, который я дал, это тег <div class="col bold h-col-1 c-green">2.22</div>!

Console.Write(driver.FindElement(By.XPath("/html/body/div[2]/div[5]/div[2]/div[5]/div[3]/div[2]/div[2]/div[2]")).Text);

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Чтобы извлечь текст 2.22 , так как элемент является динамическим элементом, вы можете использовать WebDriverwait с элементом , чтобы быть видимым , и вы можете использовать любой изследующее решение:

  • CssSelector :

    new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible(By.CssSelector("div.crash-row > div.c-green"))).GetAttribute("innerHTML");
    
  • XPath :

    new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible(By.XPath("//div[contains(@class, 'crash-row')]/div[contains(@class, 'c-green')]"))).GetAttribute("innerHTML");
    
0 голосов
/ 03 января 2019

Вы можете сначала попытаться использовать относительный xpath, чтобы найти элемент как //div[contains(@class, 'h-col-1')]

Затем попытайтесь получить значение, используя

  1. Текст (element.Text)
  2. Получить атрибут (element.GetAttribute ("value"))
...