2014-11-23 171 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