2015-03-24 2 views
0

У меня есть элемент, который требует действия double_click().perform(). Он отлично работает в Firefox, но не в Chrome. Один клик отображает меню, но двойной щелчок приведет вас в каталог. Вот мой питон/селен шаг:Двойной щелчок работает в Firefox, но не хром (Python/Selenium)

(webdriver.ActionChains(self.browser)).double_click(self.browser.find_element_by_id('nav-link-shopall')).perform() 

Сообщение об ошибке возвращает этот текст, я хотел проверить, существует не существует. Это верно, если double_click().perform() не выполняет свою работу.

Я использую Python 2.7.8 и Selenium 2.45.0.

Я использую Amazon.com в качестве примера, потому что поведение такое же, как и проприетарный код, который я тестирую. Так вот HTML код, который я пытаюсь нажать:

<div class="nav-left"> 
    <div id="nav-shop"> 
     <a href="/gp/site-directory/ref=nav_shopall_btn" class="nav-a nav-a-2" data-nav-tabindex="15" id="nav-link-shopall" tabindex="1"> 
      <span class="nav-line-1">Shop by</span> 
      <span class="nav-line-2">"Department" 
       <span class="nav-icon nav-arrow" style="visibility:visible;"></span> 
      </span> 
     </a> 
     </div> 
    </div> 

ответ

2

Попробуйте это:

variable = self.browser.find_element_by_id('nav-link-shopall') 
actions = ActionChains(driver) 
actions.move_to_element(variable) 
actions.double_click(variable) 
actions.perform() 

Вы должны использовать движение к элементу.

+0

Нет, все еще не работает. Он по-прежнему работает в Firefox, но по какой-то причине он не выполняет «double_click (variable)» в Chrome. Я могу добавить, что Traceback просто говорит «NoSuchElementException: Сообщение: нет такого элемента», пытаясь утверждать, что присутствует следующий элемент. Нет ошибок для этого конкретного действия. – Brenda

+0

Попробуйте добавить к нему метод build(). –

+0

Мне кажется, что я собираюсь задать немой вопрос, но что из '' 'import' вы используете для build()? – Brenda