gpt4 book ai didi

c# Selenium Webdriver - 元素隐藏 - "Element is not currently visible and so may not be interacted with"

转载 作者:行者123 更新时间:2023-11-30 23:34:04 24 4
gpt4 key购买 nike

我有一个关于文本框的问题,我似乎无法让 selenium 单击并输入文本。这是一个网站的密码框。用户名部分很好,但无论出于何种原因,我都无法将文本发送到密码框。我收到错误消息“元素当前不可见,因此可能无法与之交互”

我已经尝试了几种不同的方法来定位文本框,例如 XPath 名称、包含、id 等,但似乎没有任何效果。有任何想法吗?我也尝试过等待和等待元素。我还返回了所有元素名称“tbPassword”以查看是否存在冲突,它只返回 1。

这是我的代码:

driver.Navigate().GoToUrl("http://www.paddypower.com/bet ");

        IWebElement clickUsername = driver.FindElement(By.XPath("//input[@name='tbUsername']"));
clickUsername.Click();
clickUsername.SendKeys("MyUsername");


IWebElement clickPassword = driver.FindElement(By.XPath("//input[@name='tbPassword']"));
clickPassword.Click();
clickPassword.SendKeys("Mypassword");

最佳答案

有一个重复的密码input实际上是可见的:

<div class="inputbg">
THIS IS VISIBLE => <input id="dummypassword" class="input" type="text" onfocus="this.style.display='none';document.getElementById('pw').style.display='inline';document.getElementById('pw').focus()" value="Password" tabindex="2" name="dummypassword">
THIS IS INVISIBLE => <input id="pw" class="input" type="password" onblur="if(this.value==''){this.style.display='none';document.getElementById('dummypassword').style.display='inline'}" onkeypress="if (event.keyCode==13)fmLogin.submit();" value="" style="display: none;" tabindex="2" name="tbPassword" autocomplete="off">
</div>

单击可见的“虚拟”输入后,它将变为不可见,而“tbPassword”输入变为可见。在您的代码中遵循此行为:

IWebElement clickPassword = driver.FindElement(By.Id("dummypassword"));
clickPassword.Click();

IWebElement realPasswordInput = driver.FindElement(By.XPath("//input[@name='tbPassword']"));
realPasswordInput.SendKeys("Mypassword");

关于c# Selenium Webdriver - 元素隐藏 - "Element is not currently visible and so may not be interacted with",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33635425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com