2014-01-13 22 views
0

我有一個iframe邊欄,它會在小部件懸停時出現,因爲它使用onchange javascript事件,並在再次單擊邊欄時隱藏。這個側欄中有一個列表框,需要點擊這個列表框才能繼續。我如何在Python中編程Selenium webdriver以取出此側邊欄?我該如何讓Selenium拉出邊欄菜單樹

感謝

在閱讀回答問題,我補充這一點: -

element = driver.find_element_by_xpath('//*[@id="leftSiderBarForm:moduleMenu"]') 
    element = driver.find_element_by_id("leftSiderBarForm:moduleMenu") 
    hover = ActionChains(driver).move_to_element(element) 
    hover.perform() 

,但得到的錯誤: -

MoveTargetOutOfBoundsException: Message: u'Offset within element cannot be scrolled into view: (72.5, 8.5): [object XrayWrapper [object HTMLSelectElement]]' ; 

這是我從複製的元素的HTML鉻。我將實際值更改爲ABC等。

<select id="leftSiderBarForm:moduleMenu" name="leftSiderBarForm:moduleMenu" class="comboboxnowidth leftSideMenuSelect " size="1" onchange="jQuery('.submitMenuSelection').click()" style="z-index: 0;"> <option value="">-- Select --</option> 
<option value="ABC">abc</option> 
<option value="DEF">def</option> 

能使用JavaScript來觸發jQuery的?

+0

我認爲你可以使用動作類懸停在Widget,然後邊欄上進行點擊操作的元素將是可見的。 – Vinay

回答

1
from selenium.webdriver.common.action_chains import ActionChains 

def hover_over_item(self): 
    driver = webdriver_connection.connection 
    element = driver.find_element_by_id(locator) 
    hover = ActionChains(driver).move_to_element(element) 
    hover.perform() 

Reference

+0

你能否在你的回答後閱讀編輯後的問題,看看你是否能找到我所做的任何過錯。 – Chakra