我试图在保存按钮上单击一下。 Html的保存按钮:错误:使用动态Xpath访问元素时,元素不可见,而相对Xpath正常工作
<div class="button button--large ng-binding" ng-click="params.applyWrapper()">Save</div>
现在,当我使用相对xpath得到一个点击它工作正常。没有错误出现,点击这个元素是成功的。
driver.findElement(webdriver.By.xpath(".//*[@id='navcontainer']/ons-page[4]/div[2]/div/ng-form/fieldset/ul/li[8]/div")).click();
但是,使用下面给出的动态的XPath产生错误“ElementNotVisibleError:元素不可见”
driver.findElement(webdriver.By.xpath(".//div[contains(text(),'Save')]")).click();
可能是这个原因,我如何使用动态的XPath获得点击这个元素是什么?
使用显式等待按钮可见并尝试。可能有这样的机会,你的第一个xpath定位父节点so element中的元素,但是在你的动态xpath中,它正在从该节点本身定位元素所以它是不可见的,因为它可能需要时间才能看到 – NarendraR
嗨@NarendraRajput ..根据你的建议,我试着找到第一个元素,然后等待它是可见的,如下所示'var button = driver.wait(webdriver.until.elementLocated(webdriver.By.xpath(“// div [contains(文本(), '保存')“))); driver.wait(until.elementIsVisible(button))。click();'等待是无限的。驱动程序继续等待元素可见。使用绝对Xpath,它没有时间访问元素。有些东西是可疑的。 –
你在哪里添加了在这段代码中等待的时间? – kushal