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)'
您的ExecuteScript
似乎有点不对头-您正在传递emailField
,但实际上并没有在JS脚本的任何地方使用它(需要arguments[0]
引用才能做到这一点)。您的语法也已关闭-解释了您收到的Unexpected token
错误消息。
我认为这里的Javascript是正确的方法,只需要清理语法-尝试运行此语法:
((IJavaScriptExecutor)Driver).ExecuteScript($"arguments[0].setAttribute('value', '{signUpCredentials.emaiLAddress}')", emailfield);