문제

응용 프로그램에는 모든 정보를 보내려면 실제 클릭이 필요한 버튼과 메뉴가 있으며 Fireevent Style Clicking은 절단되지 않는 것 같습니다. TestPartner와 QTP는 모두 실제 클릭을 사용할 수 있습니다. TestPartner는 항상 (느리게) 이것을 수행하고 QTP는 'ReplayType'을 1에서 2로 변경하여이를 수행합니다.

Setting.WebPackage("ReplayType") = 2

그래서 내 질문입니다. 어쨌든 Watin 또는 Selenium에서 실제 클릭을 얻을 수 있습니까? 나는 그 옵션을 찾을 수 없었습니다.

감사합니다, 조쉬

도움이 되었습니까?

해결책

Selenium 2는 Selenium 1과 같은 클릭 및 키 스트로크를 종합하려는 대신 실제 클릭을 발사 할 수 있습니다. OS와의 많은 상호 작용을 기본적으로 수행하는 데 많은 상호 작용을합니다.

셀레늄 2는 제 2의 알파 단계에 있으며 현재 매우 안정적입니다. 셀레늄 2.0A2를 얻을 수 있습니다 http://code.google.com/p/selenium/downloads/list.

나는 .NET 바인딩 작업을 해왔으며 그들이가는 방식에 정말 만족합니다.

다른 팁

언제 ReplayType 설정되었습니다 장치 (2), QTP는 실제로 마우스를 움직이고 클릭을 수행합니다 (마우스 커서 이동을 볼 수 있음). 나는 셀레늄에 익숙하지 않지만 재생이 아는 바에서 순수한 JavaScript에서 이루어 지므로 DOM 이벤트를 발사 할 수 있습니다 (QTP와 마찬가지로 이벤트에서와 같이 이벤트가 발생합니다. ReplayMode) 그러나 그것은 시뮬레이션 할 수 없습니다 진짜 QTP의 방식을 클릭하십시오.

Watin을 사용하면 IE Windows의 요소의 "기본"인터페이스에 도달 할 수 있습니다. 이를 사용하면 모든 요소의 화면 좌표를 얻을 수 있습니다.

using mshtml; //Add a reference to Microsoft.mshtml that comes with WatiN.
using WatiN.Core.Native.InternetExplorer;

public static System.Drawing.Point GetScreenPoint(IEElement element)
{
    IHTMLElement nativeElement = element.AsHtmlElement;
    IHTMLElement2 offsetElement = (IHTMLElement2)nativeElement;
    IHTMLRect clientRect = offsetElement.getBoundingClientRect();
    IHTMLDocument2 doc = (IHTMLDocument2)nativeElement.document;
    IHTMLWindow3 window = (IHTMLWindow3)doc.parentWindow;

    int windowLeft = window.screenLeft;
    int windowTop = window.screenTop;
    int elementLeft = clientRect.left;
    int elementTop = clientRect.top;
    int width = nativeElement.offsetWidth;
    int height = nativeElement.offsetHeight;

    int clickX = windowLeft + elementLeft + (width / 2);
    int clickY = windowTop + elementTop + (height / 2);

    return new System.Drawing.Point(clickX, clickY);
}

그것을 사용하려면 :

Button myButton = browser.Button(Find.ById("myButton"));
System.Drawing.Point clickPoint = GetScreenPoint((IEElement)myButton.NativeElement);
MyClick(clickPoint);

분명히 요소가 보이게되어야합니다. 나는 그 오프 핸드를 확인하는 방법을 모르겠지만, 몸의 스크롤 탑 및 스크롤 플로트 속성을 변경하여 스크롤 할 수 있다고 생각합니다.

실제로 클릭을 수행하는 방법이 필요하지만 이미 StackoverFlow에있는 답변이있을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top