1

我正在使用 scrapySharp 或 HtmlAgilityPack 在 c# 中做一个程序。但是我有我需要的那部分信息的缺点,当我单击 HTML 元素(按钮,链接)时会出现。

在一些论坛中,有人评论说使用 Selenium 时可以操作 html 元素,所以我尝试了以下操作

    using OpenQA.Selenium;
    using OpenQA.Selenium.Chrome;

    // Defines the interface with the Chrome browser
    IWebDriver driver = new ChromeDriver ();
    // Auxiliary to store the label element in href
    Element IWebElement;
    // Go to the website
    driver.Url = url;

    // Click on the download button
    driver.FindElement (By.Id ("Download button")). Click ();

但作为一个网络自动化测试,它会打开一个浏览器和网站来执行选择过程(点击),所以它不是我用的,因为我必须在内部对几个网站进行检查。

虽然我可以继续使用 Selenium,但我正在寻找避免使用浏览器的方法,而是在没有浏览器的情况下单击。有谁知道如何实现点击链接或按钮,而不需要打开浏览器进行网页抓取?

4

1 回答 1

0

希望这对有相同要求的人有所帮助。
如果您想避免打开浏览器,可以使用 ChromeDriver 中的以下设置。

// settings for avoid opening browser
var options = new ChromeOptions();
options.AddArgument("headless");
var service = ChromeDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;

// url to access and scrape
var url = "https://example.com";

using (var driver = new ChromeDriver(service, options))
{
    // access the url
    driver.Navigate().GoToUrl(url);

    // Click on the download button - copied from your code above
    driver.FindElement (By.Id ("Download button")). Click (); 
}

除了上面的链接之外,您可能会发现有用,

can-selenium-webdriver-open-browser-windows-silently-in-background

运行-webdriver-无需打开-实际-浏览器-窗口

于 2019-09-30T20:10:12.407 回答