2017-03-18 9 views
0

Visual Studio 2015를 IDE로 사용하고 프로젝션을 설치했습니다 (버전 0.10.2). 내 코드에서 [TestMethod] public void Login() { IWebDriver driver = new ChromeDriver();
var ngDriver = new NgWebDriver(driver); ngDriver.Url = "https://weather.com"; ngDriver.FindElement(By.ClassName("user-login")).Click();
이제 buttonText locator를 사용하여 '로그인'버튼을 찾고 싶습니다. 내가 ngDriver.FindElement(NgBy.)을 시도 할 때 그러나, 단지 다음과 같은 옵션이 NgBy : 바인딩, 이 같음, ExactBinding, ExactRepeater, 모델, ReferenceEquals, 리피터, SelectedOpion각도기 - 네트 NgBy. 일부 로케이터 누락

내가 함께이 시도 WebStorm 후 표시했다 and JavaScript, 요소 (by.buttonText ('로그인'))와 같이 버튼을 찾아서 사용할 수있었습니다. click();

NgBy 이후에 'ButtonText'와 같은 것이 나타나지 않는 이유는 무엇입니까?

Anthony Chu's blog에서도 그는 목록에없는 Ngby.Input()을 사용하고 있습니다. 왜 나는이 모든 로케이터를 놓치고 있습니까? class NgBy

은 어쩌면 끄는 그물은 NgBy.ButtonText을 제공하지 않습니다() :


나는 각도기에서 NgBy 클래스는 다음을 제공하는 것을 발견? 하지만 나에게 이해가되지 않습니다. 나는 아직도 내가 잘못하고 있다고 생각한다! 이 풀 요청에서

답변

0
+0

이 설명은 누락 된 NgBys를 설명하지 않습니다. JP-3가 마지막 코멘트에서 언급했듯이, 그러한 방법은 [원래 분도기 프로젝트의 일부분] (https://github.com/angular/protractor/blob/master/lib/locators.ts)이며 IMO는 의심 스럽다. .Net 포트에 포함시키지 않기로 결정하십시오. –

0

원래 끄는 프로젝트에 비교할 때 일부 NgBys이없는 (bbaia에 의해 유지) "메인"각도기 그물 포크, 맞다.

옵션 1

당신은 일반적으로 대신 일반 닷넷 WebDriver으로 사용할 수 있습니다 (예를 들어, XPath는 또는 CssSelector) 요소를 찾습니다 :

Find button by inner text with XPath

Find button by attribute value and text with XPath

또한 월 이 가치있는 것을 찾으십시오. - Find element by case insensitive text with XPath

옵션 2

는 또한 많은 경우에이 비록 XPath를 사용하는 것보다 훨씬 느린 것을 driver.FindElements(By.TagName("button")).Where(e => e.Text.Trim() == "Text").FirstOrDefault(); 주 같은 것을 사용하여 자신의 구현을 작성할 수 있습니다.

옵션 3

이미 이러한 방법을 사용하는 코드를 포팅하고 있기 때문에, 당신이 그들을 가지고에, 당신이 누락 된 방법을 가지고 sergueik 포크 시도 할 수 있습니다 중요 경우 : https://github.com/sergueik/protractor-net

비록 메인 포크 뒤에 더 있습니다 - https://github.com/sergueik/protractor-net/network