Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不能更改行中的值_C#_Selenium Webdriver_Watir - Fatal编程技术网

C# 不能更改行中的值

C# 不能更改行中的值,c#,selenium-webdriver,watir,C#,Selenium Webdriver,Watir,测试应:1.点击图标“编辑”行(附带更改密码表);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 密码被更改了-没关系。

测试应:1.点击图标“编辑”行(附带更改密码表);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
密码被更改了-没关系。 但当我在SeleniumWebDriver+C上尝试同样的方法时,密码并没有改变。 代码:

伙计们,我做错了什么?
我希望您的帮助。

如果文本框和按钮的ID相同,那就是您的问题。每个页面上有多个ID实例是不可取的。即使元素类型不同,也不应该发生这种情况。Chrome采用正确的html,因此当您搜索id为“id”的元素时,它会获取第一个实例。以下是该问题的解决方法:

  • 在Chrome中打开页面
  • 右键单击要查找的元素并“检查元素”(具有重复ID的元素之一)
  • 双击显示的id并删除id='id'零件,然后按enter键
  • 再次右键单击该html元素并复制xpath
  • 将选择器更改为driver.FindElement(By.XPath(“XPathChromeReturns”) 您还应该检查第一个元素的css和xpath选择。它使查找元素变得更加干净

    driver.FindElements(By.CssSelector("#myId img")[0].Click();
    


    为什么你发送的是“1”而不是“密码”?我尝试了数字和latters。这并不重要。我还注意到按钮“OK”被点击,更改应该被保存。不要理解为什么watir和selenium上的相同源代码不起作用。如果有人有任何想法,我真的很感激。。
    driver.FindElements(By.CssSelector("#myId img")[0].Click();
    
    driver.FindElement(By.CssSelector("img[title='edit']");