Tag: webdriver

FindBy注释用于查找WebElements列表

在java中,我使用这样的代码来获取具有相同标识符的WebElements列表: @FindBy(how = How.CLASS_NAME, using = “name”) private List names; 现在,我正在使用c#而我正在尝试使用以下方法执行相同的操作: [FindsBy(How = How.ClassName, Using = “name”)] private List names; 但是,这给出了例外: System.ArgumentException:类型为“Castle.Proxies.IWrapsElementProxy_1”的对象无法转换为类型’System.Collections.Generic.List`1 [OpenQA.Selenium.IWebElement]’。 我已经尝试过FindAllBy和FindBys,但这些似乎没有效果。 无论如何我还能做到这一点 names = getDriver().findElements(By.ClassNames(“…”)) ?

如何在定位元素之前等待加载帧?

我正在等待Selenium在等待另一个元素之前切换更改帧。 即 var wait = new WebDriverWait(driver, 15); wait.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt(By.Id(“frameA”)); var wait2 = new WebDriverWait(driver, 15); // wait for element within frameA to exist wait2.Until(ExpectedConditions.ElementExists(By.Id(“elementA”))); 如果我抛入一个简单的Thread.Sleep(1000); 在第二次等待之前它运行正常,但没有它我得到以下错误: ‘unknown error: unhandled inspector error: {“code”:-32000,”message”:”Cannot find context with specified id”} enter code here 有没有更好的方法等待帧上下文切换完成之后再等待该帧中的元素被填充?

为什么我不能使用Selenium Webdriver通过Firefox下载文件?

我试图使用配置文件设置在Firefox中下载文件,但它不起作用你能告诉我我做错了什么,我使用的代码发布在这一行下面 var profile = new FirefoxProfile { EnableNativeEvents = true }; profile.SetPreference(“browser.download.folderList”, 2); profile.SetPreference(“browser.download.manager.showWhenStarting”, false); profile.SetPreference(“browser.download.dir”, folderName); profile.SetPreference(“browser.download.downloadDir”, folderName); profile.SetPreference(“browser.download.defaultFolder”, folderName); profile.SetPreference(“browser.helperApps.neverAsk.saveToDisk”, “image/jpeg,application/vnd.oasis.opendocument.text,application/vnd.oasis.opendocument.spreadsheet,” + “application/vnd.oasis.opendocument.presentation,application/vnd.oasis.opendocument.graphics,” + “application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,” + “application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation,” + “application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.mozilla.xul+xml,” + “application/vnd.google-earth.kml+xml”);

C#Selenium webdriver JavaScript错误记录

我正在使用C#测试Selenium webdriver。 如何记录我的测试中可能发生的所有JavaScript错误?

Selenium Webdriver C#Sendkeys(Keys.Arrowdown)

我正在尝试使用Selenium Webdriver / C#compile做一个箭头,但是当我尝试编译时,我得到了这个错误: ‘Keys’是’OpenQA.Selenium.Keys’和’System.Windows.Forms.Keys’之间的模糊参考(CS0104) 我的代码: driver.FindElement(By.Id(“ctl00_PlaceHolderMain_ctrlChangeBillingAddress_ctrlChangeBillingAddress_txtBillingAddress”)).SendKeys(Keys.ArrowDown); driver.FindElement(By.Id(“ctl00_PlaceHolderMain_ctrlChangeBillingAddress_ctrlChangeBillingAddress_txtBillingAddress”)).SendKeys(Keys.Enter);

如何用c#中的selenium2 webdriver点击特定坐标?

我正在使用Firefox进行测试,但是在单击闪存按钮时出现问题。 我没有访问flash元素的源代码,所以我不能使用flash-selenium或类似的东西进行测试。 目前我的解决方案是使用windows api获取屏幕截图,并处理屏幕截图并定义我应该点击它的按钮坐标,然后再次使用windows api点击坐标。 但是这样,我不能用我的电脑做任何其他事情,我必须等待与webdriver自己的function不同的交互式电脑。 我正在尝试使用webdriver在Firefox页面上获取屏幕截图(实际上已完成),并在屏幕截图中获取flash按钮的区域坐标并单击它而不使用基于元素的因为当我用于检查是否可能是selenium ide时,它不能点击像clickat这样的function,或者我做错了什么。

在并行任务期间跟踪死WebDriver实例

我看到一些使用Selenium WebDriver运行并行化嵌套循环Web压力测试的死实例怪异,简单的例子就是说,打出300个独特的页面,每个页面有100个印象。 我“成功地”使用ThreadLocal将4-8个WebDriver实例用于隔离每个任务线程,并在ParallelOptions实例上使用MaxDegreeOfParallelism来限制线程。 我只对外部循环(页面集合)进行分区和并行化,并在每个分区的“长时间运行任务”方法开头的ThreadLocal容器中检查.IsValueCreated 。 为了便于以后清理,我将每个新实例添加到由线程ID键入的ConcurrentDictionary。 无论我使用何种并行或分区策略,WebDriver实例偶尔会执行以下操作之一: 启动但从不显示url或投放展示 启动,运行任意数量的印象,然后在某些时候闲置 当其中任何一个发生时,并行循环最终似乎注意到一个线程没有做任何事情,它产生了一个新的分区。 如果n是允许的线程数,则这导致n个生产线程只有大约50-60%的时间。 清理工作最后仍然可以正常工作; 可能有2n个开放浏览器或更多,但生产性和非生产性的浏览器都得到了清理。 有没有办法监控这些无用的WebDriver实例和a)立即清除它们,加上b)让并行循环立即替换任务段,而不是像现在经常那样滞后几分钟?

selenium webdriver C#multithreading

Selenium WebDriver是否支持multithreading? 我正在尝试使用它打开2-4的几个窗口,它看起来像浏览器窗口(Firefox)有时会被冻结。 当一个线程启动时: _driver.FindElement(By.Id(id)).SendKeys(“MyMessage”); 另一个线程同时尝试获取另一个页面元素状态。 怎么处理这个? 从不同的线程访问同一页面是否有任何建议? 如何加快SendKeys方法,并且在SendKeys仍未完成时不允许selenium访问页面?

不知道为什么要使用无头浏览器

我们只是在不使用无头浏览器的情况下实现了CI,而是实际的浏览器。 因此,一旦开发团队检查了新代码。我们的烟雾自动化代码在自动机器上作为后台进程运行并发送结果。 如果有任何失败,它会发送截图。 我们没有得到的是,使用无头浏览器进行上述处理的优势是什么。 我们需要我们的烟雾脚本才能获得此保险。 比如使用Select,Calendar,Uploaded等控件提交一个可以在5分钟内运行的大型表单,而不是简单的网页加载。

使用Selenium Webdriver测试元素是否聚焦

我真的很惊讶我在互联网上找不到使用Selenium Webdriver测试元素焦点的参考资料。 我想检查何时尝试使用必填字段提交表单提交时,焦点将移至空字段。 但我无法使用WebDriver API看到任何方法。 我将能够使用JavascriptExecutor找到焦点元素。 但阅读常见问题解答让我觉得必须有一些方法来使用驱动程序本身执行检查。 谢谢你的帮助。