如何处理硒c#中的元素不可交互的异常

问题描述 投票:-1回答:2

Web元素代码:

div class =“ form_field form_field--has_error sc-fBuWsC bNcPjv”输入id =“ temporaryEmail” autocomplete =“ false” name =“ temporaryEmail” class =“ sc-hzDkRC gHYxbL” value =“” label for =“ temporaryEmail” class =“ sc-jhAzac heNtmJ”>电子邮件地址标签div

我的驱动程序代码

public IWebElement emailfield => Driver.FindElement(By.XPath(“ // input [@ id ='temporaryEmail']”));

如果我只使用:emailfield.SendKeys(signUpCredentials.emailAddress);我收到错误未处理的异常:OpenQA.Selenium.ElementNotInteractableException:'元素不可交互

如果我使用:((IJavaScriptExecutor)Driver).ExecuteScript(“ $('document.querySelector(#temporaryEmail'))”,emailfield);emailfield.SendKeys(signUpCredentials.emailAddress);

我收到未处理的错误错误:OpenQA.Selenium.WebDriverException:'javascript错误:意外令牌')'(会话信息:chrome = 77.0.3865.120)'

c# selenium selenium-chromedriver visual-studio-2019
2个回答
-1
投票

您的ExecuteScript似乎有点不对头-您正在传递emailField,但实际上并没有在JS脚本的任何地方使用它(需要arguments[0]引用才能做到这一点)。您的语法也已关闭-解释了您收到的Unexpected token错误消息。

我认为这里的Javascript是正确的方法,只需要清理语法-尝试运行此语法:

((IJavaScriptExecutor)Driver).ExecuteScript($"arguments[0].setAttribute('value', '{signUpCredentials.emaiLAddress}')", emailfield); 
© www.soinside.com 2019 - 2024. All rights reserved.