我是新來Selenium
所以我有一些擔心,請讓我知道這件事---
我不想使用
firebug
或任何其他工具來滿足這個要求,因爲我有一段時間後會改變的環境。在新的環境下,項目會相同,但在新環境中id或
xpath
會有所不同,但我的代碼應該可以在任何環境中使用。
問題
所以是他們的任何方式來獲得
xpath
通過java
在runtime
?我可以通過我的
java
代碼生成HTML
頁面的xpath
嗎?或者是他們的任何其他方式來做到這一點?
我是新來Selenium
所以我有一些擔心,請讓我知道這件事---
我不想使用firebug
或任何其他工具來滿足這個要求,因爲我有一段時間後會改變的環境。
在新的環境下,項目會相同,但在新環境中id或xpath
會有所不同,但我的代碼應該可以在任何環境中使用。
問題
所以是他們的任何方式來獲得xpath
通過java
在runtime
?
我可以通過我的java
代碼生成HTML
頁面的xpath
嗎?
或者是他們的任何其他方式來做到這一點?
不,你不能。您的Java代碼基於您在html中找到的locators(id,class,xpath
等),您的代碼無法爲自己做。
至於你的問題,Id不會因環境而改變,通常也不是類。嘗試找到這些定位器的元素,並儘量避免xpath
,這樣你就不應該有任何問題在任何環境下運行你的代碼。
有一種方法可以嘗試。
硒有8個定位器,通過它可以找到的元素
在這些8的有3個定位器如下: -
鏈接文字
選擇鏈接(錨標記)元素,這包含與指定的鏈接文字匹配的文本
部分鏈接文本
選擇鏈接(錨標記)元件,它包含文本匹配指定部分鏈接文本
標籤名稱
使用標籤名稱找到元素。
現在Selenium將根據您的文本或部分文本在DOM上查找元素。
但是這種方式不是很健壯。 看看你是否能夠在上述定位器的幫助下管理/定位所有你需要的元素。
注意: - 確保至少您的文本不會進一步改變。
可以幫你:)
你的問題還不夠清楚。請舉一個你當前環境(和相應的HTML)以及「新環境」(和相應的HTML)中的XPath的例子。 –
當然,您可以爲給定的「元素」「生成」一個XPath,但是如何找到「元素」呢?如果按照不同的標準(例如下面的答案中概述的元素,例如鏈接文本,......)查找'Element',爲什麼還需要XPath? – qqilihq