Как оптимизировать этот код Selenium WebDriver (Linq?) - PullRequest
1 голос
/ 10 октября 2011

Я новичок в Selenium и C #.

Я знаю, что этот код не оптимален, можете ли вы посоветовать, как я могу писать такие вещи быстрее и короче?

В основном я ищукнопка, ссылка на которую содержит «addNewProduct».

        var addButtons = _driver.FindElements(By.LinkText("Add"));
        IWebElement addNewProductButton = null;

        foreach (IWebElement button in addButtons) {
            if (button.GetAttribute("href").Contains("addNewProduct")){
                addNewProductButton = button;
                break;
            }
        }

        addNewProductButton.Click();

1 Ответ

2 голосов
/ 10 октября 2011

Используйте XPath или CSS Selector.

XPath

IWebElement btnAdd = _driver.FindElement(By.XPath("//a[contains(@href, 'addNewProduct')]"));

CSS Selector

IWebElement btnAdd = _driver.FindElement(By.CssSelector("a[href*='addNewProduct']"));

Я рекомендую CSS Selector, так как они быстрее и синтаксис более лаконичен.

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