0

저는 Selenium 2.25.1 API를 사용하고 있으며 RemoteWebDriver()를 사용하여 요소를 찾을 수 있도록 노력하고 있습니다. 시도 할 때를 제외하고는 요소를 찾지 못합니다. 나는 행운과 함께 여러 가지 조합을 시도하고 지금 며칠 동안 이것을 찾고있었습니다.Selenium C# RemoteWebDriver가 XPath 요소를 찾지 못했습니다.

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
IWebElement WaitForPage = wait.Until<IWebElement>((d) => 
{ 
    return driver.FindElement(By.XPath((String)data)); 
}); 

제 코드가 실패한 곳입니까? 기본적으로 데이터 변수는 데이터베이스에서 가져온 객체입니다. 나는 그것을 변환하고 코드를 통해 완벽하게 잘 나온다. 차이점은, 브라우저 (예 : Firefox)를 사용했을 때 오류없이 잘 작동한다는 것입니다. 하지만 RemoteWebDriver()와 함께 사용하면 InvalidOperationException이 발생하고 요소를 찾을 수 없다는 팝업이 표시됩니다. (서버가 스택 추적 정보를 제공하지 않았습니다.)

이 그 사용하는 경우 내가

IWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), IEcapa); 

를 사용하는 것을 보통, 그냥 매번 실패합니다.

아이디어가 있으십니까? 나는 완전히 당혹 스럽다. 무엇이든 환영하고 미리 감사드립니다!

답변

0

WebDriverWait 문 대신 암시 적 대기를 사용하는 것이 좋습니다.

WebDriver driver = new FirefoxDriver(); 
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10)); 
IWebElement WaitForPage = driver.FindElement(By.XPath((String)data)); 

그리고 데이터 변수에서 가져 오는 xpath가 올바른지 확인하십시오. 가능한 경우 일부 xpath 게시하면 데이터베이스에서 가져옵니다.

+0

변경 사항을 ImplicitlyWait로 변경했으며 시간이 오래 걸립니다. 고맙습니다! 그 정보를 위해. 오류와 함께 반환되는 XPath는 "// input [@ tabindex ="13 "]"입니다. 그런 다음 스택 추적 정보가 없다는 말을 계속합니다. 이것은 코드 블록으로 만 수행됩니다. 드라이버 = 새 RemoteWebDriver (새로운 Uri ("http : // localhost : 4444/wd/hub"), DesiredCapabilities.InternetExplorer()); 파이어 폭스와 함께 사용하면 잘 작동합니다. – Twister1002

+0

Selenium의 jar 파일 (내 명령 프롬프트에서 jar 파일을 실행 중)이 Internet Explorer를 열어도 InternetExplorerOptions()에서 다른 조건을 사용하지 않는 것 같습니다. 심지어 어떤 이유로 든 인터넷 탐색기를 인식하는 것처럼 보이지 않습니다. JQuery를 사용해 보았는데 오류가 발생했습니다. 기본적으로 드라이버가 존재하지 않는다고 말했습니다. 그래서 완전히 난처한 것 같습니다 ... – Twister1002

+0

'DesiredCapabilities.InternetExplorer'을 사용할 때만 문제가됩니까? 에서처럼, 당신이'DesiredCapabilities.Firefox'를 사용한다면 이것은 어떤 차이가 있습니까? – Arran

관련 문제