Что такое эквивалентная версия C # для Java Webdriver @Findby?

Я перехожу из среды Java в .NET, и мне нужно написать тесты Webdriver с использованием объектной модели страницы.

В Java я бы использовал следующую аннотацию:

@FindBy(linkText = "More details")
WebElement moreDetailsButton;

Пожалуйста, кто-нибудь может сказать мне, как определить WebElement с помощью С#? Кроме того, используется ли PageFactory.initElements таким же образом?

Спасибо, Стив.


person CynicalBiker    schedule 04.11.2013    source источник
comment
На этот вопрос уже был дан ответ: stackoverflow.com/questions/12592455/   -  person Karl-Johan Sjögren    schedule 04.11.2013
comment
@Karl-JohanSjögren, не совсем, этот вопрос конкретно касается List из IWebElement, а также вопрос настолько старый, что теперь не рекомендуется - для этого атрибута есть прямой перевод в .NET API.   -  person Arran    schedule 04.11.2013
comment
Что ж, если вы прочитаете больше, чем первый абзац этого вопроса, вы увидите, что в первом ответе есть решение FindBy.   -  person Karl-Johan Sjögren    schedule 04.11.2013
comment
@Karl-JohanSjögren, это два совершенно разных вопроса, и в этом вопросе нет примера кода — какой OP напрямую запрашивает!   -  person Arran    schedule 04.11.2013


Ответы (1)


Да, есть прямой перевод.

Вы ищете FindsBy:

[FindsBy(How = How.LinkText, Using = "More details")]
private IWebElement moreDetailsButton;

Что касается PageFactory.initElements, да, это очень похоже на .NET, обычно вызываемое в конструкторе Page Object:

public class LoginPage
{
    private IWebDriver _driver;

    public LoginPage(IWebDriver driver)
    {
        _driver = driver;
        PageFactory.InitElements(_driver);
    }
}

Обратите внимание, что проект Selenium полностью открыт. Вы можете легко увидеть исходный код «вспомогательных» классов Page Objects здесь.

person Arran    schedule 04.11.2013
comment
Спасибо за Ваш ответ. Мне только что удалось одновременно ответить на свой вопрос здесь ссылка - person CynicalBiker; 04.11.2013