我有一个Selenium Webdriver的问题。我正在运行针对Web应用程序的自动测试,并进行测试以检查元素的可见性。当我在CLI
中运行同一行脚本时,找到该元素,并且is_displayed()
返回“TRUE”,但当我通过Python IDE将其与其他测试用例一起运行时,is_displayed()
返回False
。Selenium Webdriver测试元素可见性的假阴性结果?
我试过隐式和显式等待,但等待不是问题,并且元素已经加载。
下面是测试案例在我的测试脚本:
def test_image_element_icon_is_displayed(self):
self.assertTrue(self.driver.find_element_by_css_selector("#Image").is_displayed(),msg="Image is not displayed")
这是我的脚本在运行CLI:
driver.find_element_by_css_selector("#Image").is_displayed()
有什么办法,我可以防止这种假阴性?也许改变我目前使用的元素选择器?
这里是我的图片元素的HTML:
<div ng-click="applyDataElement(toolbarButton.type, toolbarButton.id)" class="frame-click ng-scope" ng-repeat="toolbarButton in toolbar">
<div class="frame-box" ng-attr-id="{{toolbarButton.id}}" id="Image">
<div class="draggable-box">
<div bind-html-unsafe="toolbarButton.icon" class="draggable-icon ng-binding"><i class="fa fa-picture-o"></i></div>
<div class="draggable-label ng-binding">Image</div>
</div>
</div>
</div>
你能提供的元素的某些'html'? – Saifur 2015-04-05 22:31:47
这里的目的是什么?带文字的'div'*图片*?或具有ID *图像*的'div'? – Saifur 2015-04-05 22:38:48
@Saifur与图像编号 – Mahmor 2015-04-05 22:43:01