safari 6不支持click方法

时间:2014-03-21 10:21:35

标签: ruby selenium

我想在selenium中使用ruby for safari(版本6)编写自动化脚本。但是safari版本6不支持selenium的click方法,所以还有其他方法可以点击selenium元素。

感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用Javascript来执行相同操作。以下是Java等效产生点击。您应该能够将其转换为Ruby。

JavascriptExecutor js = (JavascriptExecutor) driver;
    String script =
        "var elem = document.getElementById('element_id');"+
        "if( document.createEvent) {"+
        "var evObj = document.createEvent('MouseEvents');"+
        "evObj.initEvent( 'click', true, false );"+
        "elem.dispatchEvent(evObj);"+
        "} else if( document.createEventObject ) {"+
        "elem.fireEvent('onclick');"+
        "}";
    js.executeScript(script);

Reference

Ruby等价物将类似于

script =    "var elem = document.getElementById('element_id');"+
            "if( document.createEvent) {"+
            "var evObj = document.createEvent('MouseEvents');"+
            "evObj.initEvent( 'click', true, false );"+
            "elem.dispatchEvent(evObj);"+
            "} else if( document.createEventObject ) {"+
            "elem.fireEvent('onclick');"+
            "}";
driver.execute_script(script);
PS:我是一个Java人,不太熟悉Ruby。