2014-12-11 2 views
1

저는 셀레늄과 Fiverr.com과 관련하여 몇 가지 도움을 얻고 자하는 몇 가지 문제에 봉착했습니다. 나는 새로운 공연을 만들려고 노력하고 있으며, 모든 것을 할 수 있었지만 몇 가지 것들은 여전히 ​​나를 뒤적 거리고 있습니다. 한 가지는 사진 업로드입니다.셀레늄과의 커플

• Windows 대화 상자를 불러오는 파일 입력 유형()을 클릭하는 단추가 있습니다. 내 계획은 지금까지 SendKeys.SendWait을 사용했습니다. Windows 대화 상자에서 "열기"를 누르는 부분을 제외하고는 그림을 제출하십시오. 나는 SendKeys.SendWait ("{ENTER}")를 사용하여 그것을 시도했으나 지금까지는 그렇게 작동하지 않았다. P/Invoke가 Windows 대화 상자를 처리 할 항목이없는 한 다른 방법을 생각할 수 없습니까?

• '설명'상자에 텍스트를 입력하려고하는데 아직 수행 할 수 없습니다.

IWebElement detailFrame = firefoxDriver.FindElement(By.XPath("/html/body")); 
    var executor = firefoxDriver as IJavaScriptExecutor; 
    executor.ExecuteScript("arguments[0].innerHTML = 'hiiiiiiii'", detailFrame); 

그것은 이상한 : 나는 클래스 이름을 얻기 위해 시도하지만 그것이 숨겨져 있기 때문에 클래스를 액세스 할 수 없음을 알려줍니다, 또한과 같이 자바 스크립트 (IJavaScriptExecutor)를 통해 할 시도 그들과 같이 텍스트 필드에 몸을 사용하고 있기 때문에 :

<body marginwidth="0" marginheight="0" spellcheck="true" class="wysihtml5-editor" contenteditable="true" style="color: rgb(119, 119, 119); cursor: auto; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal; letter-spacing: normal; text-align: start; text-decoration: none; text-indent: 0px; text-rendering: auto; word-break: normal; word-wrap: break-word; word-spacing: 0px; overflow: auto; background-color: rgb(255, 255, 255);">TEXT HERE<span id="_wysihtml5-undo" class="_wysihtml5-temp"></span></body> 

을 나는 그들이 비록 두 개의 서로 다른 '신체의'를 사용하고 생각하지만 XPath는 그냥/HTML/몸임을 보여줍니다. 이런 식으로 텍스트를 어떻게 설정합니까?

지난 2 시간 동안 도와 줘서 고맙습니다.

답변

1
  1. 셀렌은 윈도우 처리 메커니즘을 가지고 있습니다. driver.SwitchTo().Window("");을 사용하여 새로 열린 창의 초점을 설정하고 추가 작업을 수행 할 수 있습니다. 그러나 부모 창으로 돌아가려면 기본 콘텐츠을 다시 사용해야 할 수도 있습니다. 다른 창 처리 기술에 대해서는 here을 참조하십시오.

  2. 우선 셀레늄은 숨겨진 요소를 인식하지 못합니다. 요소가 숨겨져 있지 않다는 것을 알고 있다면 사용하는 선택기가 정확하지 않다고 말할 수 있습니다. 내가 제공 한 html을 분명히 이해하고 그 요소가 보이면 그 요소에 대해 xpath를 사용하는 것이 좋습니다. 당신

+0

날, 내가 XPath에 의해뿐만 아니라 ID에 의해 시도했다 요소합니다 (_wysihtml5-취소를) 찾을 수없는 어떤 아이디어를 지시하기위한 //*[@id='_wysihtml5-undo']//.. 도움이 될 수 있습니까? – Frank

+0

당신이하려는 단계를 정확히 말해 줄 수 있습니까? – Saifur

+0

firefoxDriver.FindElementById ("_ wysihtml5-undo"). SendKeys ("안녕하세요"); 또는 firefoxDriver.FindElementByXPath ("// * [@ id = '_ wysihtml5-undo']"). SendKeys ("안녕하세요"); 두 가지 모두 동일한 오류가 발생합니다. – Frank

관련 문제