谷歌浏览器的配置文件问题
我正面临着自动化脚本的问题.我正在登录脚本中的URL.当我手动进行正常登录时,但是当我使用自动化脚本时,它会要求提供验证代码. 我以为如果我将使用Chrome默认配置文件进行登录,那么此问题就不会出现.但是它没有帮助我. 谁能建议任何解决方案? 解决方案 已知,WebDriver总是以新鲜的默认配置文件开始.这就是要求进行验证的原因,但在手动何时进行验证.为避免它,您可以指定用于WebDriver的Chrome配置文件. 在Java中,我们可以使用Chromeoptions和Chrome配置文件来完成此操作.在Chrome中导航到Chrome://版本/它将显示配置文件路径和可执行路径. 根据我在此方面的工作,\ local \ google \ chrome \用户数据\ profile 3在导航到chrome://version/in普通chrome中显示.在此配置文件中,我导航到Stackoverflow并保存了凭据.因此使用以下代码 Map
0 2024-04-17
编程技术问答社区
创建新标签页并对其进行管理--Selenium
这是我的代码: var chromeOptions = new ChromeOptions(); chromeOptions.AddArguments("headless"); _driver = new OpenQA.Selenium.Chrome.ChromeDriver(chromeOptions); _driver.Navigate().GoToUrl(url); 它将打开Chromedriver.exe的实例,并将导航到目标URL. 我需要使用相同的chromedriver.exe Intance导航到其他URL,我需要为每个URL设置特定的标题和cookie. 如何用硒和铬片实现某些目标? 解决方案 就个人而言,我会使用多个浏览器实例进行此操作.他们不应该在它们之间泄漏状态,并且使启动,清洁和管理变得更加容易. 但是 - 如果您必须使用选项卡,则类似的东西会有所帮助... 这是一个简单的经理: class BrowserManag
0 2024-04-17
编程技术问答社区
如何用selenium c#管理基本认证登录?
我正在为正在进行互助的公司进行测试,但是我不知道该如何使脚本将我的凭据放在此部分如果我在页面中输入(我自己,而不是Chromedriver)会自动从PC上的登录中获得凭据,显然,测试驱动程序可以'这样做,这就是为什么我得到警报,我的问题是如何自动将凭据放置?目前,我正在将线程睡觉并手动放置凭据,但我知道那不是这样做的最佳方法,我已经尝试使用警报方法: var alert = driver.SwitchTo().Alert(); alert.SetAuthenticationCredentials("user","password"); alert.Accept(); 但是我得到了这个错误: Message: OpenQA.Selenium.NoAlertPresentException : no such alert (Session info: chrome=87.0.4280.141) ,如果我放了等待,我有超时的时间,但是什么都没有发生,因为您可以看到我正在使用
0 2024-04-17
编程技术问答社区
使用 Chrome 浏览器和 Selenium 设置 LocalStorage
我正在尝试使用OpenQA Selenium和Chrome设置本地存储密钥和值.我认为这很琐碎,但我似乎无法使它起作用.我是C#的新手,所以我可能缺少一些东西.无论如何我都有这个功能: public static void SetMockData() { OpenQA.Selenium.Remote.RemoteWebStorage storage = new OpenQA.Selenium.Remote.RemoteWebStorage((OpenQA.Selenium.Remote.RemoteWebDriver)webDriver); storage.LocalStorage.SetItem("useTestData", "true"); } 我不确定这是否正确.无论如何,当我运行时,我会得到以下例外: System.NotImplementedException : unknown command: Cannot call non W3C standard co
0 2024-04-17
编程技术问答社区
WaitForElementClickable/ Visible-Selenium C#
我需要实现和修改我当前的方法来完成这两个问题: 等待可见的要素 - (目前已实施,但它仍然使用预期条件,它已过时,可能会更改) 等待可单击的元素 - (当我的测试运行时,它的面部是"加载圆圈"的问题,我要按下按钮,在加载窗口之前,有加载程序需要1到4秒钟,然后它消失了. 当前代码: public static IWebElement WaitForElementVisible(this IWebDriver driver, By by, int timeoutInSeconds = 6) { IWebElement element; driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(0); try { WebDriverWait wait = new WebDriverWait(driver, Ti
0 2024-04-16
编程技术问答社区
Chrome自动化扩展已崩溃
我正在使用C#中的硒来自动与Google Chrome自动化.我正在使用Chrome (78.0.3904.70),Selenium.Webdriver (3.141.0)和Selenium.Chrome.Webdriver (77.0.0)的最新版本. 我使用:ChromeDriver chrome = new ChromeDriver();. Chrome打开,但没有正确加载,就像下图中的图像一样,我无法使用任何硒功能.我需要更改使用Chromedriver? 我下载了ChromeDriver v.78并已使用new ChromeDriver(v78 path)引用它,并且它具有相同的错误. 解决方案 此错误消息... 以及此错误消息... ...当Chromedriver/Chrome无法加载默认扩展时,会观察到. 从历史上看,自动化扩展与 chrome浏览器 讨论在中Chromedriver 2.32在自动化扩展的加载方面发生了什么变化?
0 2024-04-16
编程技术问答社区
如何使用Selenium、C#从一个dom元素中获取所有的css-style?
我的任务是从网页上创建最小化的CSS文件.因此,我需要从所有css-properties 中. 但是我不知道:如何从特定的DOM元素中获取所有计算的CSS风格? 我有以下代码: var chromeOptions = new ChromeOptions(); chromeOptions.AddArguments("headless"); var browser = new ChromeDriver(chromeOptions); var url = "https://example.com"; browser.Navigate().GoToUrl(url); var domElement = browser.FindElement(By.TagName("html")); 我想要: var styles = domElement.GetComputedCssStyles(); 解决方案 您可以使用getCSSValue IWebElement的方法.例如
0 2024-04-16
编程技术问答社区
在不同位置使用自定义 Chrome 浏览器配置文件时出现的问题
我创建了自定义配置文件" seleniumbot" 我尝试使用硒铬和硒铬片将其打开.它可以很好地适用于 appdata/google/google/chrome/用户数据/seleniumbot 中的默认路径.当我尝试在程序/项目文件中复制配置文件夹并使用 - 用户data-data agrument 时,我会遇到问题.问题是浏览器不是从存储/保存的帐户开始以登录Gmail. 登录. 我阅读的所有解决方案都是关于制作个人资料并制作一个. 我的proram需要在任何将不会在用户数据目录中创建此自定义配置文件的机器上运行此配置文件.关于如何解决此问题的任何建议? 解决方案 我将把这个答案组织到两种情况下.一个如果您使用的是默认的chrome配置文件(显示为:c:\ Users \ David \ AppData \ local \ local \ google \ chrome \ chrome \ user data \ default \ default)或添加的c
使用Webinator+Selenium、SpecFlow和NUnit进行多浏览器测试
我使用Selenium驱动程序开发了使用WebinatorsPecflow+Nunit的ASP.NET MVC 3应用程序.我与Chrome(使用Chromedriver)和Internet Explorer一起运行并行测试遇到了问题. 每当我在同一会话中进行两个测试,并且通过Selenium通过网络启动器并行,即当我将任何点击操作发送到页面时,似乎都会挂起. 我无法使用建议的解决方案在这里,因为SpecFlow会自动生成基础C#代码.我的解决方案的设计类似于 this (完整代码可作为GIST提供): _multipleBrowsers.RunTest(web => web.GoToUrl("http://localhost/PROJECT/Authentication/Registration")); 发生的事情是,我将对需要测试的每个浏览器实例化新的IWEBMANAGER.然后,我使用浏览器实例调用委托行动.就像这样: foreach (
0 2024-04-16
编程技术问答社区
Selenium C# 如何处理 "Open Pick an App "警报?
我正在尝试使用Chrome的Selenium C#获取警报文本 但是,此警报似乎与普通的JavaScript警报不同,使用下面的代码返回错误例外: string text = driver.SwitchTo().Alert().Text; openqa.selenium.noalertpresentexception:no oter over 这是否被认为是警报?有办法处理它吗? 解决方案 您看到的对话框显示在OS级别上,因此您无法在DOM中看到它或使用Selenium与之互动.如果您真的需要处理它,我建议您查看一个可以发送键或鼠标事件的OS级自动化工具,以以您需要的方式处理对话框. 使用java,使用 另外,您可以对这样的事情更简单: globalMouseKeyKeyHook 所以,总结.不,这不是您期望的正常警报,是的,您可以处理它,但需要在硒世界之外进行一些步骤. 其他解决方案 我们可以使用以下Windows表单SendKe
0 2024-04-15
编程技术问答社区
C#相当于Java的机器人类
C#等效于Java机器人类用于鼠标指针运动?由于操作类不能直接用于键盘和鼠标.我需要在Selenium n C#中视觉移动鼠标指针.例如,如果我想从Rediffmail网站访问我的邮件,则鼠标指针应移至地址栏,然后转到用户名和密码文本框和登录按钮.鼠标指针应随着我的测试中的动作而移动. 解决方案 当您寻找相当于Java机器人类的C#模块时,可以有三个可能的解决方案: 如果您可以调整需求表格将鼠标指针视觉上移动到 突出显示用户名 和 password textbox , you can take help of ExecuteScript Method来自 IWebElement element = driver.FindElement(By.XPath("username_field_xpath")) ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].setAttribute('style','backgr
0 2024-04-15
编程技术问答社区
使用Selenium来保存页面上的图片
我正在使用Selenium&Google Chrome驱动程序编程打开页面.在每个页面上,都有一个动态生成的图像,我想下载.目前,我正在等待页面完成加载,然后抓住图像URL并使用System.net.webclient. 下载它. 正常工作,除了我两次下载图像 - 一次在浏览器中,一次使用WebClient.问题在于,每个图像大约为15MB,并且下载两次. 所以 - 可以直接从Google Chrome中抓取图像? 解决方案 您可以使用 This This Technique,可以使用阻止图像.它运行一个名为"块图像"的Google Chrome扩展名.这样,将不会使用Chrome下载图像,这只是使用其URL&System.net.webclient以正常下载图像的问题. 其他解决方案 一种方法是通过WebDriver执行的JavaScript获取图像的base64字符串.然后,您可以将图像的base64string保存到文件中. 基本上,如果您的图像
0 2024-04-15
编程技术问答社区
C#Selenium Webdriver例外|此版本的Chromedriver仅支持Chrome版本85
我的Google Chrome版本: 88.0.4324.150 我找到了一些 solutions t对我有用. 我想打开Goog​​le Chrome投掷硒,但尚不正常. 错误 System.InvalidOperationException HResult=0x80131509 Message=session not created: This version of ChromeDriver only supports Chrome version 85 (SessionNotCreated) Source=WebDriver StackTrace: at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String d
0 2024-04-15
编程技术问答社区
如何修复这个C#问题 没有测试匹配给定的测试案例过滤器`FullyQualifiedName =
我是C#和Selenium的新手,我几乎制作了许多脚本,但是当我制作超过1个方法以上或1个类单个方法时,有一个问题,单个类总是很好. 我尝试了互联网上的所有可能解决方案,我的自我尝试的解决方案在其中我制作了一个新项目,并复制了班级名称,方法名称和名称空间并将其粘贴到新项目上,这是效果很好,这是同样的问题,但我想知道问题到底是什么. These are the Four Classes: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace SignUpPageAssignment { public class SignUpDetails { public static string registerPageReDirect = "login_r
0 2024-04-14
编程技术问答社区
无法在Selenium C#中获得Chrome性能日志
我在解决方案中使用以下Nuget软件包 selenium.webdriver -v3.141.0 selenium.webdriver.Chromedriver -v79.0.3945.3600 使用以下代码我正在创建Chrome Driver实例 ChromeOptions options = new ChromeOptions(); //Get Performance Logs from Network tab ChromePerformanceLoggingPreferences perfLogPrefs = new ChromePerformanceLoggingPreferences(); options.PerformanceLoggingPreferences = perfLogPrefs; options.SetLoggingPreference("performance", LogLevel.All); (或) ChromePerform
C# Selenium/ChromeDriver 添加用户配置文件偏好
我需要允许使用硒 +铬驱动器进行测试时所有cookie. 我正在尝试使用我不是100%确定应该允许所有cookie的首选项名称.我已经引用了此doc 并在我的设置中尝试了以下内容,但没有所需的效果. options.AddUserProfilePreference("profile.block_third_party_cookies", false); options.AddUserProfilePreference("security.cookie_behavior", 0);``` 这是我的设置代码 new DriverManager().SetUpDriver(new ChromeConfig()); var options = new OpenQA.Selenium.Chrome.ChromeOptions { };
0 2024-04-14
编程技术问答社区
如何在SeleniumWebdriver中用Chrome设置性能记录
背景 - 试图使Chromedriver日志记录,以便我可以开始使用灯塔. 我正在尝试获取c#selenium.webdriver等效于DesiredCapabilities cap = DesiredCapabilities.chrome(); LoggingPreferences logPrefs = new LoggingPreferences(); logPrefs.enable(LogType.PERFORMANCE, Level.ALL); cap.setCapability(CapabilityType.LOGGING_PREFS, logPrefs); Map perfLogPrefs = new HashMap(); perfLogPrefs.put("traceCategories", "browser,devtools.timeline,devtools"); // comma-separated
0 2024-04-14
编程技术问答社区
如何通过Selenium、ChromeDriver和GoogleChrome打开默认的Chrome配置文件
我想加载一个使用铬的新硒铬,好像我从码头打开铬 当我使用以下代码时: ChromeOptions options = new ChromeOptions(); options.AddArgument("user-data-dir=C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data\\"); options.AddArgument("disable-infobars"); options.AddArgument("--start-maximized"); ChromeDriver chromeDriver = new ChromeDriver(options); 它与我一起登录了我的gmail和所有扩展名,就像我想要的一样,但是我的其余代码: , chromeDriver.Navigate().GoToUrl("https://www.youtube.com/"); 未执行.但是当我使用以下 时 Ch
0 2024-04-13
编程技术问答社区
无法从程序集 'WebDriver, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null' 中加载类型 'OpenQA.Selenium.Internal.IWrapsElement';
我正在使用C#使用Selenium和Specflow创建自动测试.今天,由于记录功能,我不得不将selenium.webdriver更新为4.0.0-beta4版本,该功能在以前的版本中具有带有availablelogtypes属性的错误,该属性始终会抛出null参考异常. 更新到硒4后,另一个问题提出了.构建工作正常,没有错误或警告,但是当我进行测试时,抛出了例外: Message: System.TypeLoadException : Could not load type 'OpenQA.Selenium.Internal.IWrapsElement' from assembly 'WebDriver, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null'. Stack Trace: DefaultPageObjectMemberDecorator.CreateProxyObject(Type me
0 2024-04-13
编程技术问答社区
Selenium ChromeDriver如何禁用消息:"DevTools on ws
因此,我正在使用Chrome无头浏览器创建一个机器人,而且效果很好.我有很多警告,所以在对这些命令进行重新搜索后,我将其禁用: ChromeOptions option = new ChromeOptions(); option.AddArgument("--headless"); option.AddArgument("--silent"); option.AddArgument("--disable-gpu"); option.AddArgument("--log-level=3"); ChromeDriverService service = ChromeDriverService.CreateDefaultService(); service.SuppressInitialDiagnosticInformation = true; _driver = ne
2 2024-04-13
编程技术问答社区