Эмулируйте щелчок на ссылку с JavaScript, который работает с IE

В document.ready вы должны инициализировать указатель даты, просто используйте этот

$("#datetimepicker ").datepicker({
  dateFormat: 'd-M-yy'
});   

, и он автоматически покажет календарь, когда вы нажмете на тип ввода

22
задан Tam 6 May 2009 в 02:13
поделиться

4 ответа

I think you still need to call document.createEventObject -- you only checked that it's there. Untested code follows, but based on the docs it should work.

function fireEvent(obj,evt){

    var fireOnThis = obj;
    if( document.createEvent ) {
      var evObj = document.createEvent('MouseEvents');
      evObj.initEvent( evt, true, false );
      fireOnThis.dispatchEvent( evObj );

    } else if( document.createEventObject ) {
      var evObj = document.createEventObject();
      fireOnThis.fireEvent( 'on' + evt, evObj );
    }
}
36
ответ дан 29 November 2019 в 04:51
поделиться

Сначала у меня это не сработало, а потом я увидел, что в коде отсутствует параметр для части IE. Вот обновление, которое должно работать:

function fireEvent(obj, evt) {
    var fireOnThis = obj;

    if (document.createEvent) {
        // alert("FF");
        var evtObj = document.createEvent('MouseEvents');
        evtObj.initEvent(evt, true, false);
        fireOnThis.dispatchEvent(evtObj);
    } 

    else if (document.createEventObject) {
        // alert("IE");
        var evtObj = document.createEventObject();
        fireOnThis.fireEvent('on'+evt, evtObj);
    }
}
2
ответ дан 29 November 2019 в 04:51
поделиться

Если вы хотите имитировать щелчки только для ссылок , вы можете использовать это:

function clickLink(id){
location.href=document.getElementById(id).href;
}
0
ответ дан 29 November 2019 в 04:51
поделиться

Мы нашли более простой способ имитации правого клика (проверено в IE8). Используйте двойной щелчок или два одинарных щелчка, затем щелкните правой кнопкой мыши, используя Shift-F10. Я не знаю точно, почему это работает, но это работает. В приведенном ниже примере кода мы используем метод Selenium для двойного щелчка, затем с помощью драйвера IE находим WebElement и отправляем последовательность клавиш Shift-F10, которая эмулирует щелчок правой кнопки мыши. Мы используем это для тестирования веб-приложений на базе GWT. Одно место, где это не сработало так хорошо, было в древовидном элементе управления, где контекстное меню было настроено на появление по координатам мыши. Часто координаты мыши были отрицательными, поэтому щелчок правой кнопкой мыши на пункте меню не приводил к отображению дочерних пунктов меню. Чтобы справиться с этим случаем, мы добавили в элемент управления немного кода, чтобы при отрицательных координатах мыши контекстное меню появлялось в точке 0,0.

selenium.click("//td[@role='menuitem' and contains(text(), 'Add')]");
selenium.click("//td[@role='menuitem' and contains(text(), 'Add')]");
new InternetExplorerDriver().findElement(By.xpath("//td[@role='menuitem' and contains(text(), 'Add')]")).sendKeys(Keys.SHIFT, Keys.F10);
0
ответ дан 29 November 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: