测试应该:1。点击图标'编辑'行(表格fot密码更改为红外线); 2.键入新的“密码”; 3.单击表单中的“确定”按钮。 它如何在Watir + Ruby上运行:
browser.img(:title, "Edit").click #fire_event 'onclick'
browser.text_field(:id,"ID").set 'password' # Set new password
browser.div(:id,"ID").click # Save a password
密码被更改了 - 没关系。 但是当我试图在Selenium Webdriver上做同样的事情时,C#密码没有改变。 代码:
driver.FindElement(By.Id(...)).FindElements(By.TagName("img"))[0].Click(); // thats Edit button
driver.FindElement(By.Id(...)).SendKeys("1"); // Typed new password in row
driver.FindElement(By.Id(...)).Click(); // thats 'OK' button.
伙计我做错了什么? 我希望得到你的帮助。
答案 0 :(得分:0)
如果文本框和按钮都具有相同的ID,则表明您的问题。每页有一个以上ID的实例是不礼貌的。即使元素类型不同,也不应该发生。 Chrome会假定正确的html,因此当您搜索ID为“ID”的元素时,它会抓取第一个实例。以下是解决该问题的方法:
另外你应该看看css&第一个元素的xpath选择。它使查找元素更加清晰。
driver.FindElements(By.CssSelector("#myId img")[0].Click();
或
driver.FindElement(By.CssSelector("img[title='edit']");