2015-07-20 2 views
2

У меня вопрос по этому вопросу много, но никто, кажется, не имеет этой проблемы. Кроме того, в качестве примечания, я начинаю работать в Selenium и Ruby, но я постараюсь как можно более конструктивно ответить на мой вопрос.Фактическое и автоматизированное контекстное меню - это разные Selenium Webdriver

Моя задача - собрать информацию о сайте через контекстное меню различных веб-элементов. Участок, на котором я занимаюсь, - http://pershinghall.com/ из-за его использования авто-игры и флеш-памяти, - это две вещи, которые я пытаюсь проверить. При просмотре страницы, естественно, и щелкните правой кнопкой мыши на фоне, элементы контекстного меню следующим образом:

enter image description here

Однако, когда я автоматизировать процесс с селеном, опции контекстного меню:

enter image description here

Может кто-нибудь узнать, почему это происходит? Мой код выглядит следующим образом.

require 'rubygems' 
require 'selenium-webdriver' 

driver = Selenium::WebDriver.for :firefox 
driver.get "http://pershinghall.com/" 
sleep(5) 

elem = driver.find_element(:id, "background") 
driver.action.move_to(elem, 100, 100).click.context_click.perform 

Наконец, начало фона HTML элемента:

<div id="background"> 
<object style="visibility: visible;" id="flash_container" data="swf/index.swf" type="application/x-shockwave-flash" height="100%" width="100%"><param value="transparent" name="wmode"><param value="noscale" name="scale"><param value="lt" name="salign"><param value="true" name="allowfullscreen"></object> 
</div> 

Большое спасибо за любой вклад!

+1

Он работает отлично в Chrome, но только для firefox он показывает контекстный контекст по умолчанию – Madhan

+0

Он работал, но теперь я не могу использовать различные параметры, как я мог в firefox. Не могли бы вы узнать об этом? –

ответ

1

Похоже, что ваш тест нажимается контекстно на какой-либо части экрана, кроме элемента Flash, на который вы нацеливаетесь - этот второй скриншот представляет собой контекстное меню Firefox.

Я не в состоянии попробовать себя в данный момент, но я бы поэкспериментировать с различными параметрами, в строке:

driver.action.move_to(elem, 100, 100).click.context_click.perform 

Есть ли конкретная причина, почему вы остановились на 100100 ? Возможно ли, что вы перегружаетесь или недогружаете элемент flash?

+0

Спасибо, что ответили так быстро. Это хорошая идея, но я не думаю, что это проблема, потому что был еще один пример, который я сделал (http://www.michelbergerhotel.com/), который на стороне примечания, является веселым сайтом), который также сделал Не работай. Это было, несмотря на то, что курсор явно находился посреди фона, и не было соседних элементов. Наконец, я выбрал 100, 100 в качестве параметров, потому что я скопировал пример напрямую. Однако теперь я понимаю, что это смежные параметры :(Но даже если это не сработало, это не сработает. –

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