我可以使用XPath找到元素,但不使用它的ID,類或文本。我不想使用XPath,因爲我知道它很容易中斷。Watir通過xpath查找元素,但不是通過id或class
這是什麼樣子:
$browser.div(:xpath => "/html/body/nav/div[1]/div/div[3]/div/div/div[3]/div/div/div[2]/div[1]/div/div[2]/div[2]/div[1]/div[2]/div/div/div").present?
$browser.div(:xpath => "/html/body/nav/div[1]/div/div[3]/div/div/div[3]/div/div/div[2]/div[1]/div/div[2]/div[2]/div[1]/div[2]/div/div/div").click
它返回true,並且點擊元素。
繼路徑,我覺得元素,然後嘗試使用它的ID,如:
$browser.div(:id => "PaymentSelector").present?
$browser.div(:id => "PaymentSelector").click
返回false和超時試圖點擊。文字或課程也是如此。
該元素不在幀或iframe中。
爲什麼會發生這種情況,我該如何解決?
你能嘗試給出一個最小的,可重複的例子嗎?這可能是由時間問題或錯字造成的,我無法知道。 –
我真的不知道如何給出一個可重複的例子。但使用xpath,我可以找到並點擊它。然後,使用相同的xpath,我從中得到id和文本,所以我100%確定id是正確的。但是,我用$ path替換了一個獲得$ browser.div(:id =>「PaymentSelector」)。present ?.然後,它不會找到它。任何理由我應該告訴這個div的父母? –
好吧,更簡單的解釋: $ browser.div(:xpath =>「/ html/body/nav/div [1]/div/div [3]/div/div/div [3]/div/div/DIV [2]/DIV [1]/DIV/DIV [2]/DIV [2]/DIV [1]/DIV [2]/DIV/DIV/DIV「)。本? 返回true。 $ browser.div(:xpath =>「/ html/body/nav/div [1]/div/div [3]/div/div/div [3]/div/div/div [2]/div [1]/div/div [2]/div [2]/div [1]/div [2]/div/div/div「)。 >「PaymentSelector」)。存在? 返回:假 –