Tag: selenium chromedriver

如何使用C#使用Selenium WebDriver滚动到元素

如何让Selenium WebDriver滚动到特定元素以在屏幕上显示它。 我尝试了很多不同的选择,但没有运气。 这不适用于c#绑定吗? 我可以跳转到特定位置ex ((IJavaScriptExecutor)Driver).ExecuteScript(“window.scrollTo(0, document.body.scrollHeight – 150)”); 但我希望能够将它发送到不同的元素,而不是每次都给出确切的位置。 public IWebElement Example { get { return Driver.FindElement(By.Id(“123456”)); } } Ex 1) ((IJavaScriptExecutor)Driver).ExecuteScript(“arguments[0].scrollIntoView(true);”, Example); 例2 ((IJavaScriptExecutor)Driver).ExecuteScript(“window.scrollBy(Example.Location.X”, “Example.Location.Y – 100)”); 当我观看它时,它不会将页面跳转到元素,并且exception与屏幕外的元素匹配。 更新:我添加了一个bool ex = Example.Exists(); 之后检查结果。 它确实存在(它是真的)。 它没有显示(因为它仍然在屏幕外,因为它没有移动到元素)它没有被选中?????? 有人看到成功By.ClassName。 有没有人知道在C#绑定中执行此操作是否有问题.Id?

隐藏/沉默ChromeDriver窗口

当我启动Selenium的网络驱动程序(Chromedriver)时。 控制台窗口(chromedriver.exe)运行并打开chrome。 我需要知道如何隐藏那些像静音模式,因为当太多打开时我会变得混乱。 我正在使用C#。

为不同的ChromeDriver实例使用相同的chrome配置文件(会话)

我试图并行打开多个浏览器,但我无法在多个窗口中导航到该网站。 我是这样做的: namespace XXX { public class CoreDriver { public IWebDriver driver; public int my_port { get; set; } public void Initialize() { string chromeee = “”; if (my_port == 50147) { chromeee = “C:/Users/AA/Downloads/chromedriver1/”; } else if (my_port == 50148) {chromeee = “C:/Users/AA/Downloads/chromedriver2/”; } else if (my_port == 50149) { chromeee = “C:/Users/AA/Downloads/chromedriver3/”; } […]

Selenium.Chrome在哪里可以找到所有可用ChromeOption参数的列表? C#

我是阅读手册的大力倡导者。 但在这种情况下,尽管在网上搜索了一段时间,但我找不到解释所有可用ChromeOptions参数的手册。 某处必须列出所有字符串参数及其含义。 例如,以下是我通过示例绊倒发现的一些内容: var options = new ChromeOptions(); options.AddArgument(“incognito”); options.AddArguments(“test-type”); 有人可以指导我上市吗? 我正在使用C#4.6,Selenium 2.45。

使用Selenium在现有浏览器会话中打开一个新选项卡

我在C#下面的当前代码打开一个窗口,然后在单击按钮后导航到指定的URL。 protected void onboardButton_Click(object sender, EventArgs e) { IWebDriver driver = new ChromeDriver(); driver.FindElement(By.CssSelector(“body”)).SendKeys(Keys.Control + “t”); driver.Navigate().GoToUrl(“http://www.google.com”) } 但我计划导航到的网站有单点登录 。 如何在现有浏览器会话中打开新选项卡并从那里导航? 上面的代码似乎不起作用。 太感谢了!

在Selenium ChromeDriver中禁用图片

尝试禁用ChromeDriver中的图片加载。 我正在使用以下代码,但它仍在加载图像。 有什么建议? DesiredCapabilities capabilities = DesiredCapabilities.Chrome(); capabilities.SetCapability(“chrome.switches”, new string[1] { “disable-images” }); IWebDriver driver = new ChromeDriver(@”C:\chromedriver\”, capabilities);

Selenium WebDriver C#完整网站截图使用ChromeDriver和FirefoxDriver

当我使用ChromeDriver截取屏幕截图时,我会获得具有视口大小的屏幕。 当我使用FirefoxDriver截取屏幕截图时,我得到了我想要的内容,这是一个网站的全屏幕打印。 ChromeDriver声明如下: IWebDriver driver = new ChromeDriver(); FirefoxDriver声明如下: IWebDriver driver = new FirefoxDriver(); 两个驱动程序执行相同的代 driver.Manage().Window.Maximize(); driver.Navigate().GoToUrl(url);//url is a string variable ITakesScreenshot screenshotDriver = driver as ITakesScreenshot; Screenshot screenshot = screenshotDriver.GetScreenshot(); screenshot.SaveAsFile(“c:/test.png”, ImageFormat.Png); ChromeDriver的test.png分辨率为1920×1099,仅包含浏览器视口。 FirefoxDriver的test.png分辨率为1903×16559,包含整个页面。 我知道GetScreenshot()方法不会返回相同的分辨率大小,因为它在IEDriver,FirefoxDriver,OperaDriver,ChromeDriver中的实现略有不同。 我的问题是: 为什么ChromeDriver和FirefoxDriver的.GetScreenshot()方法之间存在这样的差异,即使他们使用相同的界面(ITakesScreenshot)? 有没有办法让ChromeDriver的GetScreenshot()方法返回整个网页屏幕而不仅仅是视口?

ChromeDriver显示丢失的UI共享上下文

我有一台运行Windows 7虚拟机的Windows 10笔记本电脑。 在虚拟机内部,当我启动WebDriver时,它在启动时给出错误gpu_process_transport_factory.cc 丢失的UI共享上下文 : IWebDriver driver = new ChromeDriver() //This causes the 1009 Error 然后因查询立体声录音 失败而无法发送GpuChannelMsg_CreateCommandBuffer 和 command_buffer_proxy_impll.cc 共享内存句柄无效 。 这已经工作了几个月并且没有进行任何更改 (此WebDriver是虚拟机的唯一目的),运行它的笔记本电脑运行正常(即没有GPU问题)。 WebDriver仍会浏览页面,但会产生更多错误并且速度会慢10倍。 编辑 :更新到ChromeDriver到2.35仍然是相同的行为。