.NET 使用 Selenium 进行测试,无头 Chrome 错误

.NET Tests with Selenium, headless Chrome error

我一直在尝试为我的测试实现无头浏览器,但我收到一条错误消息,向我显示:"Unable to locate element: {"method":"id","selector": "my_id"}”。这是我正在使用的代码:

[TestFixture]
class ClientesSystemTest
{
    private ChromeOptions options;
    private NewClientesPage page;
    private IWebDriver driver; 
    public ClientesSystemTest()
    {
        options = new ChromeOptions();
        options.AddArgument("--headless");
        driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), options);
        page = new NewClientesPage(driver);
    }

    [Test]
    public void CadastraCliente()
    {
        page.Visita();
        page.Cadastra("Paulo", "Guedes", "00870021087", "Rua abcdwxyz, 14", 15);
        driver.Close();
    }
}

这就是地籍法。:

public void Cadastra(string nome, string sobrenome, string cpf, string endereco, int idade)
    {
        IWebElement nomeCliente = driver.FindElement(By.Id("Nome"));
        IWebElement sobrenomeCliente = driver.FindElement(By.Id("Sobrenome"));
        IWebElement cpfCliente = driver.FindElement(By.Id("CPF"));
        IWebElement enderecoCliente = driver.FindElement(By.Id("Endereco"));
        IWebElement idadeCliente = driver.FindElement(By.Id("Idade"));
        IWebElement estadoCivilCliente = driver.FindElement(By.Name("EstadoCivil"));
        driver.FindElement(By.CssSelector("[value=Divorciado]")).Click();

        nomeCliente.SendKeys(nome);
        sobrenomeCliente.SendKeys(sobrenome);
        cpfCliente.SendKeys(cpf);
        enderecoCliente.SendKeys(endereco);
        idadeCliente.SendKeys(idade.ToString());
        nomeCliente.Submit();
    }

至此我已经尝试了所有方法。测试在没有 headless 功能的情况下正常运行。有人对此错误有解决方案吗?谢谢

我猜您的网站会根据浏览器分辨率显示不同的元素。通常,无头浏览器的设置较小,因此我会确保将其设置为与您测试非无头浏览器时使用的大小相同。