這是非常簡單的:btw是css是要走的路; xpath應該只被用作最後的手段。 http://sauceio.com/index.php/2010/01/selenium-totw-css-selectors-in-selenium-demystified/解釋css定位器比我在這裏提供的空間更深入。
最好的辦法:如果你使用firefox下載螢火蟲,那會讓你看看你的html。 Pres cmd + Shift + c,它會用元素熒光筆爲你打開。找到你的html元素,也許它會是這個樣子
<input type="submit" tabindex="110" value="Post Your Answer" id="submit-button">
然後你可以找到你的元素倒也乾脆
WebElement element = driver.findElement(By.cssSelector("input[id='submit-button']"))
注意,我們把標記名第一個「輸入」,其次是某種括號內的唯一標識符「input [id ='submit-button']」。大多數情況下,這將覆蓋您使用的所有css定位器的75%。另外的25%需要在我放在頁面頂部的鏈接中包含一些更棘手的內容。
你可能會問:「我可以再說ID使用什麼樣的唯一標識符的」清楚,這裏涵蓋:http://release.seleniumhq.org/selenium-remote-control/0.9.2/doc/dotnet/Selenium.html
好運開始了
編輯
那麼好的運氣找到你元素放在第一位......如果您需要,您可以通過部分定位器文本來搜索元素,如input [id * ='submit']。當你使用部分文本作爲定位器的一部分時,使用它對動態生成的元素很有幫助。
你提到走上html樹,也許我沒有看到,當我第一次看到這個問題。我認爲你遇到了這個問題。不推薦使用html樹,因爲它會讓html測試變得更脆弱。從長遠來看,它也會使你的代碼不可讀。一般來說,如果你的ID缺失或不可預測,我會建議與proj交談。管理層讓開發人員編寫實際上可以實現自動化的代碼(例如:在關鍵元素上實現標識符)。這實際上可以節省您和開發人員的長期努力,並且還可以提高測試的速度和可靠性。
謝謝!不幸的是,這並不能真正幫助我,因爲我的元素上的大多數ID缺失或不可預測。 – reinierpost 2012-08-20 08:45:16