2014-01-13 1 views
0

У меня есть панель iframe-sidebar, которая появляется, как только виджет зависнет, поскольку он использует событие onchange javascript и скрывается, когда боковая панель снова нажата. В этой боковой панели есть список, который нужно нажать, чтобы моя цепочка продолжалась. Как мне настроить Selenium webdriver на Python, чтобы вытащить эту боковую панель?Как сделать 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

Я думаю, что вы можете использовать класс действия парить над виджетом, а затем выполнить операцию щелкните на боковой панели, как элемент будет виден. – 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

Смежные вопросы