웹 사이트가 열릴 때마다 ID가 변경되는 웹 사이트의 텍스트 필드를 채우려 고합니다. 이를 우회하기 위해 클래스 이름으로 웹 요소를 조회하면 클릭 할 수 있으므로 잘 작동하는 것 같습니다.
currentWebElement.Click();
그러나 편집 텍스트 상자를 채우려 고 할 때
currentWebElement.SendKeys("51");
아무 일도 일어나지 않음 (더욱 그렇다하더라도 초점이 사라짐)
나는 문제가 무엇인지 확인하기 위해 많이 검색했지만 해결책을 찾지 못했기 때문에 여기 누군가가 나를 올바른 방향으로 가리킬 수 있는지 궁금합니다. 지금까지 시도한 것 :
1) 나는 크롬에서 일하고 있었지만 이것이 sendKeys의 일반적인 문제 인 것 같아서 슬프게도 문제가 지속되었습니다. 파이어 폭스로 마이그레이션을 시도했지만 파이어 폭스 .exe의 바이너리 경로를 찾을 수 없어서 성공하지 못했지만 다른 질문에서 해결해야합니다. 따라서 문제는 크롬과 IE 모두에서 발생합니다.
2)이 웹 사이트에서 답변 한 다른 질문에서이 제안을 찾은대로 javascript를 사용하여 명령을 보냅니다.
driver.ExecuteScript("arguments[0].value = '51'", currentWebElement);
직접적으로 구현했지만 함수로 구현해도 작동하지 않았습니다.
private static object setValue(this IWebDriver driver, IWebElement element, String value) {
return ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].value = arguments[1]", element, value);
}
// and then calling it in my code:
setValue(driver, currentWebElement, "51");
모든 구현은 나에게 오류나 경고를주지 않았지만 (나는 그 과정에서 그것들을 제거 할 수 있었다) 원하는 결과를 제공하지 않았다. 즉, 상자가 계속 비어있어 나를 괴롭히기 시작했다!
By byCss = By.CssSelector(".clsTextWidgetParseError>input");
var element = Driver.FindElement(byCss );
element.Clear();
element.SendKeys(value);
나는 당신이 잘못된 선택기를 사용하고 있다고 가정합니다. 예외가 발생하면 스택 추적을 제공하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다