我對watir-webdriver有一個非常奇怪的問題。Watir-webdriver,即使發現它也不能「投射」到子類型的元素
這裏的輸入標籤我試圖達到的快照(不能想出一個辦法來獲取源的JavaScript創建彈出後,大聲笑)
反正這裏是我的一些代碼使用XPath來定位這些元件(有兩個文本字段和一個選擇標記)
firstname = b.element(:xpath, "//div[@class='ap_popover']/input[@name='firstName']")
lastname = b.element(:xpath, "//div[@class='ap_popover']/input[@name='lastName']")
authorselector = b.element(:xpath, "//div[@class='ap_popover']/select")
puts firstname
puts lastname
puts authorselector
此代碼成功地返回的Watir元件對象。然而,當我嘗試丟掉。
puts firstname.to_subtype
它怪胎:
C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.4.1/ lib/watir-webdriver/elements/element.rb:262: `assert_exists':無法定位元素,使用 {:xpath =>「// div [@ class ='ap_popover']/input [@ name = 'lastName']「} (Watir :: Exception :: UnknownObjectException)
那麼,發生了什麼事?它可以通過xpath找到他們沒有問題,但是當我試圖將它們全部突然xpath搜索失敗時?
值得一提的是,我正在瀏覽的html是通過javascript完整創建的,因此爲什麼我不能在這裏複製\粘貼並不得不截圖。
謝謝!
而不是做元素 - >子類型。你可以直接訪問它'b.textfield(:name =>'firstName')'。最近watirwebdriver我一直有一些「無法找到元素」問題... –
它無法找到確切的問題。頁面上還有另外一個可以作爲JavaScript加載的「原型」 - 但它永久隱藏,你不能(也不應該)與它進行交互。所以是的,它找到了一個帶有該名稱的文本字段,但它找到了錯誤的名稱。就好像它沒有意識到html已經被增強了。 –
在這種情況下,'b.text_fields(:name =>'firstName')'應該返回它們兩個,你可以選擇第二個。 –