2014-11-23 174 views
-1

我是Selenium的新手,我已經開始學習Selenium Web驅動程序,部分原因是,我已將'Yahoo.com'作爲應用程序使用Web驅動程序自動登錄。我有個奇怪的問題,每次'用戶名'和'密碼'的ID都被改變了。如何處理在Selenium Webdriver中處理動態元素ID

我曾嘗試下面的代碼:

WebElement user = driver.findElement(By.id("username")); 
WebElement password = driver.findElement(By.id("passwd")); 

每當這些ID被更改:(

請幫助我如何處理這種情況下提前

感謝,

Raj

+2

嘗試,而不是使用ID的XPath。 – Maroun 2014-11-23 10:49:15

+0

您在這裏提到的網站是錯誤的。粘貼'html' – Saifur 2014-11-23 16:03:23

回答

0

經檢查的網站yahoo.com site。我修改了我的代碼,因爲名稱/ id對於Chrome和Firefox來說是不同的。以下代碼適用於Chrome和Firefox。

試試下面的代碼:

WebElement user = driver.findElement(By.xpath("//input[@placeholder='Yahoo ID' or @placeholder='Yahoo username']")); 
WebElement password = driver.findElement(By.xpath("//input[@placeholder='Password']")); 
+0

你的答案不正確! 'username'字段有'name ='login'',但你對'password'字段是正確的。 – Saifur 2014-11-23 15:58:46

+0

您一定看過Chrome中的檢查過。我在Firefox中做過。並且名稱是用戶名字段的**「用戶名」**。:) – Subh 2014-11-23 16:11:54

+0

我指的是您提供的網站。並且,在'ie,ff,chrome'上測試這些。另外,我不認爲屬性值根據瀏覽器而改變。 – Saifur 2014-11-23 16:23:08