使用selenium java处理div标签内的onclick事件

时间:2015-03-11 19:15:27

标签: javascript selenium

如何使用Selenium处理此div

<div onclick="Hover_Menu();Toggle_LevelToolMenu(this,event);" 
     class="edittop edit-one"></div>

我想点击它并使用将要显示的菜单。我相信我将能够处理显示的菜单,但是,我无法点击此div

我尝试使用

driver.findElement(By.xpath("xpath")).click();

以为我会使用JavascriptExecutor,但getElementbyId无效,因为这是div并且没有关联的ID

示例:

<div style="height:25px; width:55px;">
    <div onmouseover="Hover_ToolBarMenu();" class="edit_box">
        <div onclick="return Click_ToolBarMenu('Edit',1019, 9189707,event, this)" class="editopt edit">
            Edit
        </div>
        <div onclick="Hover_LivesMenu();Toggle_ToolBarMenu(this,event);" class="editopt edit-dot dot"></div>
    </div>
    <div class="clr"></div>
    <div style="display:none; position:relative;" class="qm_ques_level_menu">
        <div onmouseover="Hover_LivesMenu();" onclick="return Click_ToolBarMenu('Delete',1019, 9189707,event, this)" class="menu_buttons img_ico del">
            Delete
        </div>
        <div onmouseover="Hover_LivesMenu();" onclick="return Click_ToolBarMenu('Copy',1019, 9189707,event, this)" class="menu_buttons img_ico copy accor">
            Copy <span class="arrowIcon">?</span>
        </div>
        <div onmouseover="Hover_LivesMenu();" onclick="return Click_ToolBarMenu('Move',1019, 9189707,event, this)" class="menu_buttons img_ico move accor">
            Move <span class="arrowIcon">?</span>
        </div>
        <div onclick="return Click_ToolBarMenu('Deposit2QB',1019, 9189707,event, this)" class="menu_buttons img_ico qb">
            Deposit to Bank
        </div>
    </div>
    <div></div>
</div>

4 个答案:

答案 0 :(得分:0)

http://selenium-python.readthedocs.org/en/latest/locating-elements.html

你能否使用CLASS_NAME

driver.find_elements(By.CLASS_NAME, 'edit-one')

driver.find_element_by_class_name('edit-one')

答案 1 :(得分:0)

Find and click an item from 'onclick' partial value

这样的事情怎么样?

driver.find_element_by_css_selector("div[onclick*='Hover_Menu']")

答案 2 :(得分:0)

Selenium: How to select nth button using the same class name

这个怎么样(需要div处于静态位置)

var nth = 2;
var divs = driver.findElements(By.className("edit-one"));
var div = divs.get(nth);
div.click();

答案 3 :(得分:0)

我能够弄清楚这一点。我使用jQuery来调用这个div中的onclick函数

以下是我使用的jQuery

var event = document.createEvent('Event');$('.editopt.edit-dot').get(0).onclick(event)

感谢所有发布并帮助我的人。