-1
我想測試一個簡單的方案,但xpath似乎並不可用,一旦我成功,但在同一個xpath之後,又一次保持失敗。xpath選擇器工作Firefox不在紅寶石腳本
請讓我們知道這裏有什麼問題。這兩個xpath都在firepath中工作,並且第一個xpath始終在腳本中工作。
require 'selenium-webdriver'
browser = Selenium::WebDriver.for :firefox
Given(/^I am on the TRU home page$/) do
browser.get("https://www.toysrus.com")
end
When(/^I search for a product$/) do
browser.find_element(:name,"keyword").send_key("toys")
browser.find_element(:xpath,"/html/body/div[4]/div[1]/div/div/div/nav/div/div[2]/div[6]/div").click
end
And(/^Click on first product$/) do
browser.find_element(:xpath,"//div[2]/div/div[2]/div[2]/div/div[2]/div[4]/div/div[2]/div[2]/div[1]/a/div[2]/div[1]/div[2]").click
end
Then(/^Take me to PDP$/) do
pending
end
兩個觀察:1.絕對xpaths容易出錯,所以即使它現在工作,它可能會在以後失敗。 2.您可能會遇到這樣的問題:在該元素實際存在於該頁面之前,它正嘗試點擊第二個** XPath **,因爲它正在等待之前點擊觸發的內容。 有關您正在查看的內容的更多詳細信息,您嘗試點擊的元素的** html **以及獲得的錯誤將需要提供有意義的答案。 – mrfreester
請不要使用瀏覽器生成的XPath。它很脆弱,因爲它檢查你不關心的事情,並且它可能不檢查有意義的事情(ID和相關類)。 –