2012-05-07 2 views
1

Selenium-ClientWatir을 사용하고 난 후에 Selenium-Webdriver/Ruby을 작업하기 시작했습니다.Seleneium-Webdriver/Ruby를 지원하는 방법

그러나이 방법에 대한 정보를 얻지 못하고 종종 스크립트에 갇히게됩니다. 드롭 다운에서 옵션을 설정하는 것이 예제 중 하나입니다. 웹 페이지의 모든 요소를 ​​가져올 수 없습니다. method not found

같은

자주 나는 점점 오전 오류 중 하나는 Ruby으로 Selenium-Webdriver위한 방법의 업데이트 된 목록을 제공하여 나를 도울 수 있습니다.

인터넷 및 포럼에서 관련 정보를 찾으려고했습니다. 이 URL에는 메소드가 들어 있지만 동일한 오류도 있습니다.

+0

사용했던 코드를 게시하십시오. – sunnyrjuneja

+0

다음은 드롭 목록에서 옵션을 선택하려고 시도한 예입니다.그들 중 누구도 다음과 같이 오류를주는 일을하지 않았습니다 : 방법을 찾을 수 없습니다. 나는 selenium-webdriver 2.21.2 gem을 설치했다. 루비 : rubyinstaller-1.8.7-p358 selenium.get_select_options @ 1 "CSS DIV = # idDropList_ixProject_oDropList"@ selenium.select 2 ("CSS DIV = # idDropList_ixProject_oDropList * n 번째 자식 (1)", " AYAH ") 또한 셀레늄 클라이언트에서 잘 작동하는 강조 방법이 웹 드라이버에서 작동하지 않습니다. – Mrityunjay

+0

webdriver 용 Rdoc은 셀레늄 - 클라이언트 방법을 가리키고 있습니다. – Mrityunjay

답변

0

저는 Ruby와 자동화를 위해 selenium webdriver를 사용하고 있습니다. A very good website은 루비와 함께 특히 Excel (자동화) 사용에 관한 많은 정보를 가지고 있습니다. C# & 자바에는 많은 정보가 있고 Ruby에는 리소스가 제한되어 있기 때문에 그물을 청소해야한다고 생각합니다. 스택 오버플로에는 Kevin이 언급 한 것처럼 많은 좋은 예가 있습니다. 특정 오류를 검색 할 때 훨씬 쉽습니다. 내가 너라면 필자는 Selenium IDE와 함께 사용할 수있는 Firebug라는 매우 유용한 Firefox 부가 기능을 다운로드 할 것이다. 이 2는 웹 페이지를 최소한으로 유지하면서 막히게되는 대부분의 것들을 해결하는 데 도움이되는 매우 강력한 도구입니다.

Firebug 웹 페이지의 요소를 검사 (그냥 마우스 오른쪽 버튼으로 클릭) 한 다음 id, link, css 또는 xpath를 통해 웹 드라이버에게 찾을 수 있습니다. id 또는 css 태그가 없을 때 Xpath가 가장 좋습니다. 또는 내가 정말로 붙어있을 때 내가하는 일. Selenium IDE (기록 & 재생)을 실행하고 내가 원하는 동작을 기록 (즉, 드롭 다운 메뉴에서 값 선택)하는 것입니다. 그런 다음 파일을 Ruby 스크립트로 내보내 필요한 코드 (일반적으로 xpath) 만 가져옵니다.

희망을 얻었습니다. 아직도 당신에게 힘든 시간을주는 특정 오류를 게시하고 우리는 거기에서 그것을 취할 수 있습니다. Firebug를 다운로드 한 후, 선택하려는 드롭 상자를 마우스 오른쪽 단추로 클릭하고 inspect 요소 기능의 결과를 여기에 게시하십시오. 그런 다음 적절하게 선택하는 방법에 대한 도움이 될 수 있습니다.

그냥 당신에게 XPath는 아래의 라인처럼 보일 것이다 아이디어를 제공합니다 .. :

element = driver.find_element(:xpath, "//input[@name='payment']") 

입력 분명히 태그의 이름입니다. 그런 다음 .. : value, name 또는 type과 같은 내부 속성으로 요소를 찾을 수 있습니다. 위의 줄은이 '요소'의 결과를 변수 요소에 넣습니다. 변수를 할당하는 데 관심이 없다면 'element ='비트를 놓칠 수 있습니다. 그러나 요소를 찾는데 필요한 모든 것을 찾은 후에는 요소를 찾을 수 없을 때 웹 드라이버가 시간 초과되거나 충돌 할 때 오류 처리를 제어 할 수있는 방법이 필요합니다 (특히 자동화 작업시). 이미로드되지 않았습니다.

관련 문제