C # Selenium просматривает результаты XPath - PullRequest
0 голосов
/ 13 ноября 2018

Как я могу просмотреть каждый результат из одного и того же Xpath?Мой код:

IList<IWebElement> base = driver.FindElements(By.XPath("/html/body/table/tbody/tr[2]/td[2]/table[2]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/div[4]/div/table/tbody//td[contains(@style,'text-align: center;')and contains(text(),'?')]/following-sibling::td[1]"));

    String[] baseALL = new string[base.Count];
    int i = 0;

        foreach (IWebElement elm in base)
        {

            string uhm = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td[2]/table[2]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/div[4]/div/table/tbody//td[contains(@style,'text-align: center;')and contains(text(),'?')]/following-sibling::td[1]")).Text;
            string liczba = uhm;
            Console.WriteLine(liczba);
            double d = Convert.ToDouble(liczba.Replace(".", ","));
            if (d < 10)
            {
                foreach (IWebElement wyslij in base)
                {    driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td[2]/table[2]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/div[4]/div/table/tbody//td[contains(@style,'text-align: center;')and contains(text(),'?')]/following-sibling::td[2]/a")).Click();
                }
            }

            driver.FindElement(By.XPath("//td//table//td//a[@class='manager_icon'] [@title='Asystent Farmera']")).Click();
    }

Мой xpath дает результаты типа

<td>1.8</td>
<td>3.2</td>
<td>4.8</td>
<td>7.8</td>

Я хочу просмотреть каждый из них и сравнить (если его меньше 10 Нажмите здесь), но он всегда выбирает первый результатКак я могу перейти к следующему?То же самое для Click Loop.

1 Ответ

0 голосов
/ 13 ноября 2018

Используйте относительный xpath вместо абсолютного xpath.

Поиск элемента всегда возвращает первый элемент. Вы должны изменить xpath, включив nth.

Попробуйте это, и если не работает, добавьте ваш html к вопросу.

int i = 0;

foreach (IWebElement elm in base)
{
    i++;
    string uhm = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td[2]/table[2]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/div[4]/div/table/tbody//tr["+i+"]/td[contains(@style,'text-align: center;')and contains(text(),'?')]/following-sibling::td[1]")).Text;
    string liczba = uhm;
    Console.WriteLine(liczba);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...