我必须在弹出窗口上进行测试,我在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'
如何测试元素是否可点击(真正的)。
答案 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();
下载ChromeDriver