我試圖在保存按鈕上單擊一下。 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