为了账号安全,请及时绑定邮箱和手机立即绑定

硒可及性测试

硒可及性测试

C#
慕哥9229398 2021-12-25 16:36:54
我已经下载了最新的 rcx 文件并在 chrome 选项中添加了扩展名。第一步执行得很好。在第二步中,它一直执行到 driver.Navigate().GoToUrl("chrome://extensions-frame/");对于下一步,它会引发此错误"OpenQA.Selenium.NoSuchElementExceptionHResult=0x80131500Message=no such element: Unable to locate element: {"method":"xpath","selector":"//a[@class='extension-commands-config']"}(Session info: chrome=68.0.3440.106)(Driver info: chromedriver=2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e),platform=Windows NT 10.0.17134 x86_64)Source=WebDriverStackTrace:at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value)at OpenQA.Selenium.Remote.RemoteWebDriver.FindElementByXPath(String xpath)at OpenQA.Selenium.By.<>c__DisplayClass19_0.<xpath>b__0(ISearchContext context)at OpenQA.Selenium.By.FindElement(ISearchContext context)at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(By by)at Exsilio.QA.Test.DKNAccessabilityTest.AccessabilityTest() in C:\Trilok\Projects\Code\Automation Testing\RealTimeDataUpdate\QualityAssurance\Exsilio.QA.Test\DKNAccessabilityTest.cs:line 40"我使用“extension_1_0_9_0.crx”作为当前扩展。请做充分的需要。
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

对于问题中的任何行的答案,我使用的是带有 WAVE 扩展名的那些行,这就是问题所在。


我没有尝试过用Wave实现这一点的方法。它不适用于Wave只会为您提供错误的快照。


从快照中,您将无法获得诸如错误或缺陷类型之类的想法。我建议不要为辅助功能测试使用 WAVE 扩展。而不是使用工具“ Globant.Selenium.Axe ”。使用Nuget 包管理器安装插件


这是Chrome 扩展程序的链接。


这是在文本文件中记录错误的代码:


 //If file does not exists, Create a new file and log the result.

            if (!File.Exists(accessiblityTestFileLocation))

            {

                File.Create(accessiblityTestFileLocation).Dispose();

                LogResult ();

            }

            //If file exists, Log the result into file.

            else if (File.Exists(accessiblityTestFileLocation))

            {

                LogResult ();

            }

日志结果函数:


   public void LogResult ()

                {


     using (StreamWriter sw = new StreamWriter(accessiblityTestFileLocation))

        {

            foreach (var path in appInfo.Pages)

            {

                var navigateUrl = new Uri(baseUrl, path.Path);


                driver.Navigate().GoToUrl(navigateUrl);

                driverService.driver.Manage().Window.Maximize();


                AxeResult results = driver.Analyze();


                //Format the results, And write them in the text file.

                if (results.Passes.Length > 0)

                {

                    //Format the text as per your need, This text will be entered into the Text file.

                    sw.WriteLine("\n");

                    sw.WriteLine(path.Title);

                    sw.WriteLine("===========================");

                    sw.WriteLine("\n");


                    foreach (var passCase in results.Passes)

                    {

                        sw.WriteLine("Id: " + passCase.Id);

                        sw.WriteLine("Description: " + passCase.Description);

                        sw.WriteLine("Impact: " + "Normal");

                        sw.WriteLine("Help: " + passCase.Help);

                        sw.WriteLine("HelpURL: " + passCase.HelpUrl);

                        foreach (var node in passCase.Nodes)

                        {

                            sw.WriteLine(node.Html);

                            sw.WriteLine("\n");

                        }

                    }

                }


                //Format the results based on the result type, And write them in the text file.

                if (results.Violations.Length > 0)

                {

                    foreach (var violation in results.Violations)

                    {

                        //Write the accessibility test for the selected Attributes provided by the Axecore.

                        sw.WriteLine("Id: " + violation.Id);

                        sw.WriteLine("Description: " + violation.Description);

                        sw.WriteLine("Impact: " + violation.Impact);

                        sw.WriteLine("Help: " + violation.Help);

                        sw.WriteLine("HelpURL: " + violation.HelpUrl);

                        foreach (var node in violation.Nodes)

                        {

                            sw.WriteLine(node.Html);

                            sw.WriteLine("\n");

                        }

                    }

                }

            }

        }

                }


查看完整回答
反对 回复 2021-12-25
?
长风秋雁

TA贡献1757条经验 获得超7个赞

2件事。他们已移动链接以启用 Chrome 插件的快捷键。您甚至可以通过手动切换其中任何一个来查看这一点。该选项仍然可用@ chrome://extensions,但它不再位于页面底部,而是用户 id=menuButton。

我还认为,即使您启用了该选项,您在将 CTRL+m 发送到浏览器时也会遇到问题。


查看完整回答
反对 回复 2021-12-25
  • 2 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信