在 Selenium C# 中的 Headless Chrome 驱动程序中出现错误
Getting Error in Headless Chrome driver in Selenium C#
我在 Selenium C# 中使用 Headless chrome 驱动程序时遇到错误。我正在自动化涉及用户名和密码的网站。没有 Headless chrome 也很好。但是当我使用无头 chrome 时。它主要给我错误
{"no such element: Unable to locate element: {\"method\":\"css selector\",\"selector\":\"
current-portfolio-collapsible > div > div > div > table > tbody > tr:nth-child(6) > td:nth-child(1) > div > a > span\"}\n
(会话信息:headless chrome=64.0.3282.167..enter code here
我仅在 Headless chrome 中遇到此错误。下面是代码。
var driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
ChromeOptions option = new ChromeOptions();
option.AddArgument("--headless");
option.AddArgument("--window-size=2160,3840");
using (var driver = new ChromeDriver(driverService, option))
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
driver.Manage().Timeouts().PageLoad = TimeSpan.FromMinutes(2);
driver.Navigate().GoToUrl("https://www.wikifolio.com/");
label1.Text = "Browser is opened now";
try
{
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMinutes(2);
IJavaScriptExecutor main = (IJavaScriptExecutor)driver;
Task.Delay(10000);
main.ExecuteScript("arguments[0].click();", driver.FindElement(By.XPath("//*[@id=\"page-content\"]/header/div[2]/div/div/nav/div[2]/a[1]")));
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
var username = driver.FindElement(By.CssSelector("input#Username"));
username.SendKeys("derhenker55@hotmail.com");
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
var password = driver.FindElement(By.CssSelector("input#Password"));
Task.Delay(1000);
password.SendKeys("password");
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
IJavaScriptExecutor loginclick = (IJavaScriptExecutor)driver;
Task.Delay(1000);
loginclick.ExecuteScript("arguments[0].click();", driver.FindElement(By.CssSelector("form > button.c-button")));
}
catch(Exception e)
{
}
}
这是网站。
在这里你可以找到右上角的"Login"按钮。
请在这方面帮助我。帮助将不胜感激。谢谢
var service = ChromeDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;
ChromeOptions option = new ChromeOptions();
option.AddArgument("--headless");
driver = new ChromeDriver(service, option);
wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
driver.Navigate().GoToUrl("https://www.wikifolio.com/");
wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("/html/body/div[2]/div[1]")));
Actions actions = new Actions(driver);
actions.MoveToElement(driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[2]/div/div[1]/div[1]/div/div[3]/a[3]"))).Build().Perform();
Thread.Sleep(2000);
actions.Click(driver.FindElement(By.CssSelector("#change-language-dialog-container > div > div > div > div > div.c-disclaimer__buttons > div"))).Build().Perform();
Thread.Sleep(2000);
driver.FindElement(By.XPath("/html/body/div[2]/header/div[2]/div/div/nav/div[2]/a[1]")).Click();
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//*[@id='Username']")));
var username = driver.FindElement(By.XPath("//*[@id='Username']"));
var password = driver.FindElement(By.XPath("//*[@id='Password']"));
username.Clear();
username.SendKeys("username");
password.Clear();
password.SendKeys("pass");
IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
executor.ExecuteScript("arguments[0].click();", driver.FindElement(By.CssSelector("button.c-button:nth-child(8)")));
希望对您有所帮助!我 运行 没问题.. 告诉我是否对你有帮助
我在 Selenium C# 中使用 Headless chrome 驱动程序时遇到错误。我正在自动化涉及用户名和密码的网站。没有 Headless chrome 也很好。但是当我使用无头 chrome 时。它主要给我错误
{"no such element: Unable to locate element: {\"method\":\"css selector\",\"selector\":\"
current-portfolio-collapsible > div > div > div > table > tbody > tr:nth-child(6) > td:nth-child(1) > div > a > span\"}\n
(会话信息:headless chrome=64.0.3282.167..enter code here
我仅在 Headless chrome 中遇到此错误。下面是代码。
var driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
ChromeOptions option = new ChromeOptions();
option.AddArgument("--headless");
option.AddArgument("--window-size=2160,3840");
using (var driver = new ChromeDriver(driverService, option))
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
driver.Manage().Timeouts().PageLoad = TimeSpan.FromMinutes(2);
driver.Navigate().GoToUrl("https://www.wikifolio.com/");
label1.Text = "Browser is opened now";
try
{
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMinutes(2);
IJavaScriptExecutor main = (IJavaScriptExecutor)driver;
Task.Delay(10000);
main.ExecuteScript("arguments[0].click();", driver.FindElement(By.XPath("//*[@id=\"page-content\"]/header/div[2]/div/div/nav/div[2]/a[1]")));
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
var username = driver.FindElement(By.CssSelector("input#Username"));
username.SendKeys("derhenker55@hotmail.com");
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
var password = driver.FindElement(By.CssSelector("input#Password"));
Task.Delay(1000);
password.SendKeys("password");
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
IJavaScriptExecutor loginclick = (IJavaScriptExecutor)driver;
Task.Delay(1000);
loginclick.ExecuteScript("arguments[0].click();", driver.FindElement(By.CssSelector("form > button.c-button")));
}
catch(Exception e)
{
}
}
这是网站。
在这里你可以找到右上角的"Login"按钮。
请在这方面帮助我。帮助将不胜感激。谢谢
var service = ChromeDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;
ChromeOptions option = new ChromeOptions();
option.AddArgument("--headless");
driver = new ChromeDriver(service, option);
wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
driver.Navigate().GoToUrl("https://www.wikifolio.com/");
wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("/html/body/div[2]/div[1]")));
Actions actions = new Actions(driver);
actions.MoveToElement(driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[2]/div/div[1]/div[1]/div/div[3]/a[3]"))).Build().Perform();
Thread.Sleep(2000);
actions.Click(driver.FindElement(By.CssSelector("#change-language-dialog-container > div > div > div > div > div.c-disclaimer__buttons > div"))).Build().Perform();
Thread.Sleep(2000);
driver.FindElement(By.XPath("/html/body/div[2]/header/div[2]/div/div/nav/div[2]/a[1]")).Click();
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//*[@id='Username']")));
var username = driver.FindElement(By.XPath("//*[@id='Username']"));
var password = driver.FindElement(By.XPath("//*[@id='Password']"));
username.Clear();
username.SendKeys("username");
password.Clear();
password.SendKeys("pass");
IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
executor.ExecuteScript("arguments[0].click();", driver.FindElement(By.CssSelector("button.c-button:nth-child(8)")));
希望对您有所帮助!我 运行 没问题.. 告诉我是否对你有帮助