Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 - Fatal编程技术网

C# 元素不可单击#

C# 元素不可单击#,c#,selenium,C#,Selenium,当我输入用户名和密码的详细信息并按下提交按钮时,如果给定的信息无效,则会出现错误消息提示,因此您必须再次单击面板以重新输入详细信息 我的问题是,我试着点击面板上的任何项目,很明显我可以在网站上手动操作,但不能用我的自动化软件,因为它给了我一个(元素不可点击)异常。这个问题的解决方案是什么?有什么建议吗 这是错误消息的html HTML: 我建议您只使用SendKeys()方法,而不只是单击(因为我假设您正在发送用户名和密码) 更新 如果需要单击页面: Program.Driver.FindEle

当我输入用户名和密码的详细信息并按下提交按钮时,如果给定的信息无效,则会出现错误消息提示,因此您必须再次单击面板以重新输入详细信息

我的问题是,我试着点击面板上的任何项目,很明显我可以在网站上手动操作,但不能用我的自动化软件,因为它给了我一个(元素不可点击)异常。这个问题的解决方案是什么?有什么建议吗

这是错误消息的html

HTML:


我建议您只使用
SendKeys()
方法,而不只是单击(因为我假设您正在发送用户名和密码)

更新

如果需要单击页面:

Program.Driver.FindElement(By.XPath("/html/body")).Click();

您需要向代码中添加一个新的操作,该操作不支持box。单击()。您也可以尝试在之后添加.Perform(),但我认为这样做行不通

我相信这就是您需要的代码片段:

new Actions(driver).moveToElement(box).click().perform();

这是我从

中抓到的,请发布用于单击元素的HTML和代码。@JamieRees感谢您的评论。以上代码已更新!你说,
这是我试图单击以关闭错误消息的元素,你能发布该元素的HTML吗?或者你是想点击错误信息?@JamieRees我不是想点击错误信息,因为我必须点击其他地方才能关闭错误信息。请看一下你需要的元素的html代码。也许我没有很好地解释我的问题。我在向框中添加输入时没有问题,在错误消息提示后,我在解锁本应输入输入的屏幕时有问题。因为删除错误消息的唯一方法是单击页面上的其他位置,可能您以前见过这种方法。
<input class="form-control" data-val="true" data-val-required="The First Name field is required." id="regFirstName" name="FirstName" placeholder="First Name" type="text" value="">
var username = "your username";
var box = Program.Driver.FindElement(By.Id("regFirstName")); // Lookup using Id

// SendKeys is setting the focus on the field and entering a string
box.SendKeys(username);
Program.Driver.FindElement(By.XPath("/html/body")).Click();
new Actions(driver).moveToElement(box).click().perform();