2015-09-07 21 views
1

當我們在谷歌搜索文本框中輸入文本時,它會自動建議選項,對象發生變化。現在我想點擊之前「Google搜索」的「搜索」按鈕。我已經創建了帶名稱屬性的「Google搜索」按鈕,「btnK」是該值。現在,由於該屬性更改爲「btnG」我可以檢索屬性,然後使用此屬性值來標識對象。這聽起來像死衚衕,因爲對象被改變了,所以我們不能檢索它的值。我相信我們可以在這裏使用動態屬性。但我卡在這裏!我正在使用硒web驅動程序和Java。獲取同一元素的運行時屬性

任何幫助表示讚賞!

回答

0

你不能使用以前的屬性作爲其應用程序的行爲,所以你需要相應地指示硒。雖然有一個解決方案,你需要使用「多重標準的XPath」

使用此XPath爲您的點擊操作

driver.findElement(By.xpath("//button[@name='btnG' or @name='btnK']")).click(); 
driver.findElement(By.id("gs_htif0")).gettext(); // this will retrieve your value from text box 

這樣,如果硒發現元素的任何一個,然後它會點擊相同。

希望它會幫助你:)

+0

我不想從文本框中檢索文本,而是我想檢索按鈕的任何屬性的值。我認爲第一個xpath可以用來第二次識別元素,但不確定。謝謝......將嘗試執行此! @Shubaham –

+0

@ Shubham-非常感謝! xpath的作品,我也能夠檢索按鈕的其他屬性!這裏有一個問題 - 我已經給出了「btnG」屬性。如果我們不知道這個屬性,那麼我們該如何處理這個問題。 –

+0

歡迎mojo。我們需要定位元素以某種方式對其執行操作。 xpath提供了一些更靈活的定位元素,而不是從name ='btnG'定位按鈕,您也可以使用//按鈕[@class ='lsb'] [@ type ='submit']。現在在最後,即使這個元素也改變了,我們也需要改變我們的腳本,這也被稱爲維護腳本 –