我可以使用瀏覽器的開發(fā)人員工具檢查元素,如下所示:使用 FireFox 檢查元素:/html/body/div[1]/div/div[8]/form/div[2]/spring:eval/table/tbody/tr[2]/td[5]使用 Chrome 檢查相同的元素,如下所示://*[@id="searchVO"]/div[2]/spring:eval/table/tbody/tr[2]/td[5]但是,當(dāng)我嘗試在腳本中使用這些 XPath 中的任何一個時,執(zhí)行失敗并顯示以下堆棧跟蹤:WebElement formElement = wd.findElement(By.xpath("//*[@id=\"searchVO\"]/div[2]/spring:eval/table/tbody/tr[2]/td[5]"));或者WebElement formElement = wd.findElement(By.xpath("/html/body/div[1]/div/div[8]/form/div[2]/spring:eval/table/tbody/tr[2]/td[5]"));堆棧跟蹤:org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression //*[@id="searchVO"]/div[2]/spring:eval/table/tbody/tr[2]/td[5] because of the following error:NamespaceError: Failed to execute 'evaluate' on 'Document': The string '//*[@id="searchVO"]/div[2]/spring:eval/table/tbody/tr[2]/td[5]' contains unresolvable namespaces.………*** Element info: {Using=xpath, value=//*[@id="searchVO"]/div[2]/spring:eval/table/tbody/tr[2]/td[5]} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)我也確認(rèn)網(wǎng)頁上沒有Frames;然而,上面的元素存在于一個表單中——下面給出了這個元素的片段——我試圖找到下面的狀態(tài)“Operative”或“Stopped”——上面的 Xpath 屬于這個狀態(tài)字段。在進(jìn)行此搜索后,如果狀態(tài)為“Operative”,則我需要單擊 Product1。
2 回答

慕森卡
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個贊
這是操作的 xpath。
WebElement formElement = wd.findElement(By.xpath("//div[@id='nc-bd']/following-sibling::div[1]//table//tr[2]//td[5]"));
和 xpath 停止。
WebElement formElement = wd.findElement(By.xpath("//div[@id='nc-bd']/following-sibling::div[1]//table//tr[3]//td[5]"));

Helenr
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個贊
這是將標(biāo)識所有產(chǎn)品的 xpath Operative
。
//form[@id='searchVO']//table//tr[td[normalize-space(.)='Operative']]/td[count(./ancestor::table//tr[1]/th[normalize-space(.)='Product'])+1]
添加回答
舉報
0/150
提交
取消