我可以手动 https://panel-support.oasgames.com/panel/ajaxrela/login 登录到PHP网站,这将显示一个鸟动画,登录失败时在网站上显示"登录失败",而成功登录后它将重定向到主页。登录通过 POST 进行,返回 JSON。但是当我使用以下可执行代码段并在自动 Chrome 窗口中登录(手动或使用 selenium 命令(时,会显示鸟动画,但在登录失败或成功时不会发生任何其他情况。(随意使用虚假登录数据进行测试(。注释掉的命令用于通过硒登录,此处带有虚假的登录数据:
private static IWebDriver driver = new ChromeDriver();
static void Main(string[] args)
{
driver.Navigate().GoToUrl("http://panel-support.oasgames.com/panel/ajaxrela/login");
//WebDriverWait wait = new WebDriverWait(driver, new System.TimeSpan(0, 0, 30));
//wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy((By
.Name("username"))));
//driver.FindElement(By.Id("username")).SendKeys("foo");
//driver.FindElement(By.Id("password")).SendKeys("bar");
//driver.FindElement(By.TagName("button")).Click();
Thread.Sleep(10000);
driver.Quit();
}
用户名和密码的选择器不正确。他们应该By.Name()
.
driver.FindElement(By.Name("username")).SendKeys("foo");
driver.FindElement(By.Name("password")).SendKeys("bar");
driver.FindElement(By.TagName("button")).Click();
我将协议(链接字符串的开头(更改为https,一切都按预期工作。 @Buaban的回答让我看到我的 Windows 代理设置不正确,但在更改设置后,它手动在 Edge 和 IE 中工作,但在 Chrome 中仍然不起作用。因此,我认为某些Chrome安全设置阻止我通过selenium驱动程序登录,尽管这可能也是因为我通过VPN访问该页面。