Python Web驱动程序Selenium-Z索引问题
我必须在弹出窗口上进行测试,我正在Python中使用WebDriver Selenium 简单地说,如果我打开弹出窗口,它会在覆盖层下,并且仍然不可访问。。。但如果我用WebDrivers测试这一运动,一切都会起作用Python Web驱动程序Selenium-Z索引问题,python,selenium,webdriver,selenium-webdriver,Python,Selenium,Webdriver,Selenium Webdriver,我必须在弹出窗口上进行测试,我正在Python中使用WebDriver Selenium 简单地说,如果我打开弹出窗口,它会在覆盖层下,并且仍然不可访问。。。但如果我用WebDrivers测试这一运动,一切都会起作用 popup = browser.find_element_by_id('help_paid_options') if popup.is_displayed(): print 'Found' else: print 'Not Found' popup.find_e
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'
我如何测试一个元素是可点击的(真的)。在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");
然后将字符串解析为int,并比较弹出面板是否具有更大的z索引
另一个解决方案是使用ChromeDriver,因为它无法单击隐藏元素
要使用色度驱动程序
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver.exe");
WebDriver driver=new ChromeDriver();
您可以从这里下载ChromeDriver是的,这是一种方法,但我不想测试“z指数因子”,而是测试“不可勾选因子”,它可以由其他原因生成(在这种情况下是“z指数”,但在其他情况下可能是项目重叠)。有没有一种方法可以模拟真正的用户交互?谢谢!正如你所看到的,在代码中,我称之为“点击”来点击“x”来关闭弹出窗口,所有的东西都可以工作,但是它不应该工作,因为它在一个覆盖层后面。错过了,因为它已经离开了屏幕。您正在使用的浏览器驱动程序。其他浏览器允许你点击吗?是的,Chrome和Firefox比起来很尴尬。它可能会发现这个问题,因为我已经读过它需要能够看到元素来单击它,但他们正在讨论解决这个问题。我已经包括了chrome的安装指南,但是你可能已经准备好了。这个答案在某种程度上帮助了我,一个css类可以多次出现在DOM中。然后,您可以通过z索引确定最上面的元素!