无头浏览器在渲染

时间:2017-08-17 15:54:30

标签: c# selenium phantomjs google-chrome-headless

我正在使用含有C#的硒和使用phantomJS和镀铬无头金马for进行自动化测试。我最近遇到了一个问题,但却找不到答案。当无头浏览器呈现某些页面时,他们无法在页面上找到元素。我进一步研究了这个问题,发现无头浏览器正在查看的html代码已经被剥夺了所有元素,并在head标签中添加了一些标签。这些页面和测试在Chrome和IE等普通浏览器中运行良好。

这是我正在使用的html代码:

<!--?xml version="1.0" encoding="UTF-8" ?-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head></head>
    <body>
        <form id="dataform" action="Removed for privacy" method="post" autocomplete="on">
                <p>
                    siteindicator is required.
                </p>
                <div>
            Final URL: "Removed for privacy"  <input type="hidden" name="RelayState" value="Removed for privacy" /><br />

            siteindicator:  <input type="text" name="siteindicator" style="width: 500px;" /><br />
            dateofbirth:  <input type="text" name="dateofbirth" style="width: 500px;" /><br />
            employeenumber:  <input type="text" name="employeenumber" style="width: 500px;" /><br />
            lastname:  <input type="text" name="lastname" style="width: 500px;" /><br />
            ssn:  <input type="text" name="ssn" style="width: 500px;" /><br />
            last4ssn:  <input type="text" name="last4ssn" style="width: 500px;" /><br />
            unauthorisedurl:  <input type="text" name="unauthorisedurl" style="width: 500px;" /><br />
            last5ssn:  <input type="text" name="last5ssn" style="width: 500px;" /><br />
            first5ssn:  <input type="text" name="first5ssn" style="width: 500px;" /><br />
            redirecturl:  <input type="text" name="redirecturl" style="width: 500px;" /><br />
            exceptionurl:  <input type="text" name="exceptionurl" style="width: 500px;" /><br />
            timeouturl:  <input type="text" name="timeouturl" style="width: 500px;" /><br />
            employerid:  <input type="text" name="employerid" style="width: 500px;" /><br />
                </div>
                <div>
                    <input type="submit" value="Continue" />
                </div> 
        </form>

    </body></html>

当我使用无头浏览器并提取源代码时,我看到了这个:

<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body></body></html>

希望有人可以提供帮助,因为我对此缺乏想法。

编辑:

以下是我使用selenium初始化浏览器的c#代码:

case "ChromeHeadless":
             var headlessOptions = new ChromeOptions();
             headlessOptions.AddArguments("--disable-gpu, --headless");
             headlessOptions.AddArguments("--window-size=1920,1080");
             MyDriver = new ChromeDriver(Path, headlessOptions);
             break;

这是测试开始的地方:

Driver.Init("SSO");
wait = new WebDriverWait(Driver.MyDriver, TimeSpan.FromSeconds(30));
ssoTestPage = new SingleSignOn(Driver.MyDriver);
Driver.getPageSourceCode();//used to get the html source code from just before the failure
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("dataform")));

测试在最后一行失败,在dataform元素上有一个ElementNotFound Exception。

0 个答案:

没有答案