Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Web驱动程序Selenium-Z索引问题_Python_Selenium_Webdriver_Selenium Webdriver - Fatal编程技术网

Python Web驱动程序Selenium-Z索引问题

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

我必须在弹出窗口上进行测试,我正在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_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索引确定最上面的元素!