Я пытаюсь очистить сгенерированные javascript html-объекты с веб-сайта.Я перепробовал много разных библиотек и обнаружил, что селен имеет все, что мне нужно.
Я пытался запустить драйвер, не находясь в режиме без головы, и он работает, но это не то, что мне нужно.Мне нужна фоновая задача, чтобы пользовательский интерфейс был максимально чистым.
var chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--no-startup-window");
chromeOptions.AddArgument("--user-agent=" + Settings.globalUserAgent);
chromeOptions.AddArgument("--log-level=3");
ChromeDriverService service = ChromeDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;
service.SuppressInitialDiagnosticInformation = true;
using(var driver = new ChromeDriver(service, chromeOptions))
{
driver.Url = "https://example.com";
driver.Navigate().GoToUrl("https://example.com/otherpage");
var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 30));
var element = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.Id("sub-conv-fu")));
string source = driver.PageSource;
if (source.Contains("some string:"))
{
File.WriteAllText("test.txt", source);
} else
{
File.WriteAllText("test.txt", source);
return "Error";
}
}
return "";
Эта строка кода содержит переменную, которую я хочу получить.Он загружается с использованием javascript
var element = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.Id("sub-conv-fu")));
Это работает, если я уберу тэг "--headless".