我正在尝试登录“ https://www.quora.com/”,它具有登录屏幕,我在其中输入了我的用户名和密码,它始终抛出Element不可见,我在SO上经历了所有其他答案,但都无济于事
我尝试通过Javascript和ScrollintoView单击该元素,但无济于事。
IWebElement uname = driver.FindElement(By.Name("email"));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click();", uname);
js.ExecuteScript("arguments[0].scrollIntoView()", uname);
js.ExecuteScript("arguments[0].click()", uname);
uname.SendKeys("myusername@uname.com");
他们都没有工作。
答案 0 :(得分:1)
页面上还有一个带有<input name="email">
元素的登录表单(隐藏)。您需要处理可见的一个。尝试使用以下代码找到必填的输入字段:
IWebElement uname = driver.FindElement(By.Xpath("//div[@class='login']//input[@name='email']"));
答案 1 :(得分:0)
要登录https://www.quora.com/
,您需要将字符序列发送到电子邮件和密码字段,然后可以使用以下解决方案:
电子邮件字段:
driver.FindElement(By.CssSelector("input.text.header_login_text_box.ignore_interaction[name='email']")).SendKeys("myusername@uname.com");
密码字段:
driver.FindElement(By.CssSelector("input.text.header_login_text_box.ignore_interaction[name='password']")).SendKeys("PankajKushwaha");
答案 2 :(得分:0)
查找C#代码以进行登录
[TestMethod]
public void QuoraLogin()
{
ChromeDriver webDriver = new ChromeDriver();
WebDriverWait wait = new WebDriverWait(webDriver, new TimeSpan(0, 0, 0, 30));
webDriver.Navigate().GoToUrl("https://www.quora.com/");
IWebElement email= wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[@class='login']//input[@name='email']")));
email.SendKeys("ABC@yahoo.com");
IWebElement password = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[@class='login']//input[@name='password']")));
password.SendKeys("123");
webDriver.FindElement(By.XPath("//div[@class='login']//input[@value='Login']")).Click();
}