C# Selenium Chromedriver 仅显示'data'



我创建了一个非常简单的C#项目来测试Selenium和Chrome驱动程序,但当我运行它时,它被卡在了第一行,即创建ChromeDriver对象。

我已经设置如下:

  1. 。NET Core 3.1控制台应用程序(也尝试过.NET 4.7(

  2. 已安装硒。WebDriver 3.141.0和Selenium。WebDriver。ChromeDriver 87.0.4280.8800。

  3. 我的Chrome版本是";版本87.0.4280.88(官方版本((64位(";。我已经仔细检查了与Chrome和ChromeDriver的兼容性。

  4. 代码:

using OpenQA.Selenium.Chrome;
namespace MyFirstSelenium
{
class Program
{
static void Main(string[] args)
{
ChromeDriver chrome = new ChromeDriver();
chrome.Navigate().GoToUrl("https://www.google.co.jp/");
}
}
}

可视演播室屏幕

chromedriver.exe按预期复制到调试文件夹,所以我认为问题既不是兼容性也不是路径。

彩色打印机

当我运行代码时,结果是一个空窗口,地址栏中有"data"。没有引发错误。我搜索了几个小时,找到了一些文章,但大多数都是旧的,这些答案都没有成功。

感谢您的帮助。非常感谢。


添加chromedriver.exe详细控制台输出。

@Piotr M。彩色打印机控制台

日志文件https://drive.google.com/file/d/1ECOS8E55aaTFV63e8P-7n6uRVcf49PRN/view?usp=sharing

新代码当我第一次执行";chromedriver.exe--verbose--日志路径=chromedriver.log";,但如果没有它,它就会抛出WebDriverException。

OpenQA。硒。WebDriverException:"向URL localhost:9515/session的远程WebDriver服务器发送HTTP请求时,引发了响应为null的异常。异常的状态为未知错误,消息为:由于目标计算机主动拒绝,无法建立连接。由于目标计算机被动拒绝,无法进行连接。'

var chromeOptions = new ChromeOptions();
chromeOptions.BrowserVersion = "87";
IWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:9515"), chromeOptions);

尝试此代码

ChromeOptions options =new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
options.addArguments("--disable notifications");
DesiredCapabilities cp=new DesiredCapabilities();
cp.setCapability(ChromeOptions.CAPABILITY, options);
options.merge(cp);
WebDriver driver=new ChromeDriver(options);

可能是循环冗余的经典情况。

chrome是一个保留字,您可能需要将变量名更改为其他名称,例如chromex。所以你的有效代码行是:

ChromeDriver chromex = new ChromeDriver();

额外考虑

还应考虑以下方面:

  • 不要使用ChromeDriver类,而是使用IWebDriver接口。

    IWebDriver driver = new ChromeDriver();
    
  • 您需要通过GoToUrl()传递完整的url,而不是部分urlgoogle.co.jp/,如下所示:

    driver.Navigate().GoToUrl(@"https://www.google.co.jp/");
    

相关内容

  • 没有找到相关文章

最新更新