Web Driver Selenium - Z-index问题

时间:2013-12-13 09:47:25

标签: python selenium webdriver selenium-webdriver

我必须在弹出窗口上进行测试,我在Python中使用WebDriver Selenium。

简单来说,如果我打开弹出窗口,它会在叠加层下面,它仍然无法点击......但如果我用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'

如何测试元素是否可点击(真正的)。

1 个答案:

答案 0 :(得分:2)

Java 中,您可以尝试这样做。只需将方法更改为如何在Python中执行此操作即可。

适用于FireFox和IE 您可以获取两个z-index并检查弹出窗口是否大于它后面显示的页面元素。

 //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");

然后将字符串解析为int并比较弹出面板是否具有更大的z-index

另一种解决方案只是使用ChromeDriver,因为它无法点击隐藏的元素

使用 ChromeDriver

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

您可以从此处http://chromedriver.storage.googleapis.com/index.html

下载ChromeDriver