2013-12-13 2 views
1

Мне нужно сделать тест во всплывающем окне, я использую WebDriver Selenium в Python.Web Driver Selenium - Z-index Issue

В нескольких словах, если я открываю всплывающее окно, оно проходит под наложением и остается незаметным ... но если я проверю это движение с помощью WebDrivers Selenium, все будет работать.

popup = browser.find_element_by_id('help_paid_options') 
if popup.is_displayed(): 
    print 'Found' 
else: 
    print 'Not Found' 

popup.find_element_by_xpath("//*[@id='help_paid_options']/* [contains(@class,'x_pop_close')]").click() 

if popup.is_displayed(): 
    print 'Found' 
else: 
    print 'Not Found' 

Как я могу проверить, что элемент можно щелкнуть (по-настоящему).

ответ

2

В Java вы можете попробовать сделать так. Просто измените методы на то, как вы это сделаете в Python.

для FireFox и IE Вы можете получить два Z-индексирование и убедитесь, что всплывающие окна больше, чем элементы страницы он появляется позади.

//Get the elements you want to compare 
WebElement element=driver.findElement(By.xpath("XPATH For Panel")); 
WebElement elementTwo=driver.findElement(By.xpath("XPATH For Pop Up")); 


//Then get the values of the z-indexes 
String zindex = element.getCssValue("z-index"); 
String zindexTwo = elementTwo.getCssValue("z-index"); 

Затем разбирает строки в целое, и сравнить ваш всплывал панель имеет большую Z-индекс

Другое решение просто использовать ChromeDriver, поскольку он не может нажать на скрытые элементы

Чтобы использовать ChromeDriver

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver.exe"); 
WebDriver driver=new ChromeDriver(); 

Вы можете вниз загрузите ChromeDriver отсюда http://chromedriver.storage.googleapis.com/index.html

+0

Да, это способ, но я не хочу проверять «коэффициент z-индекса», но «неоткрываемый фактор», который может быть сгенерирован по другой причине (в данном случае это «z- index ", но в других случаях это может быть перекрытие элементов). Есть способ имитировать взаимодействие пользователя? Спасибо – Nothing

+0

Конечно! Как вы можете видеть, в коде я нажимаю «кликнуть», чтобы щелкнуть «x», чтобы закрыть всплывающее окно, и все работает, но вместо этого оно не должно работать, потому что оно находится за наложением. – Nothing

+0

Пропустили это с экрана. Какой драйвер браузера вы используете. Другие позволяют вам щелкнуть по нему. –

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