小编Jer*_*rry的帖子

如何通过Selenium WebDriver以编程方式配置Chrome扩展程序

我需要在Chrome中安装和配置扩展程序,以便在Selenium测试执行期间修改所有请求标头.我已经能够从Saucelabs中的这篇支持文章中看到一个示例,展示如何在本地为Firefox做这个,但不知道如何为Chrome做到这一点.

扩展程序的ChromeDriver文档仅用于安装,而不是配置.

问题

  • 有人能指出一些文档,解释如何实现这一点或在这里发布一个例子吗?
  • 如何更新设置?
  • 如何找出任何给定扩展可用的设置属性?
  • 本地和远程执行之间是否存在任何差异,因为这是我在Firefox方法中遇到的问题之一?

计划是针对SauceLabs运行此操作.尝试使用ModHeader chrome扩展来设置所需的标头值.

编辑1

尝试安装Chrome版本的MODHeader扩展程序,但遇到了类似的问题.能够在本地安装扩展,但在远程执行中会看到错误.

private static IWebDriver GetRemoteDriver(string browser)
{

    ChromeOptions options = new ChromeOptions();
    options.AddExtensions("Tools/Chrome_ModHeader_2_0_6.crx");

    DesiredCapabilities capabilities = DesiredCapabilities.Chrome();
    capabilities.SetCapability(ChromeOptions.Capability, options);


    capabilities.SetCapability("name", buildContext);
    capabilities.SetCapability(CapabilityType.BrowserName, "Chrome");
    capabilities.SetCapability(CapabilityType.Version, "");
    capabilities.SetCapability(CapabilityType.Platform, "Windows 10");
    capabilities.SetCapability("screen-resolution", "1280x1024");
    capabilities.SetCapability("username", "SaucelabsUserName");
    capabilities.SetCapability("accessKey", "SaucelabsAccessKey");
    capabilities.SetCapability("build", "BuildNumber");
    capabilities.SetCapability("seleniumVersion", "2.50.1");


    return new RemoteWebDriver(new Uri("http://ondemand.saucelabs.com/wd/hub"), capabilities);
}
Run Code Online (Sandbox Code Playgroud)

SauceLabs日志中显示的错误是

[1.968][INFO]: RESPONSE InitSession unknown error: cannot parse capability: chromeOptions
from unknown error: unrecognized chrome option: Arguments
Run Code Online (Sandbox Code Playgroud)

selenium google-chrome google-chrome-extension saucelabs selenium-webdriver

13
推荐指数
1
解决办法
7310
查看次数

Jquery ui自动完成使用ID填充隐藏字段

我正在尝试使用自动完成插件来填充一个带有大学名称的文本框和另一个带有大学代码的文本框.下面的代码返回结果并填充大学名称文本框,但我无法弄清楚如何填充另一个输入.

我已经尝试过这个例子,但是甚至在调用webmethod时遇到了问题.关于这一点的一个奇怪的事情是,似乎在将自动完成附加到用户键入的文本框之前调用了ajax.不知道是什么触发了js来调用自动完成方法.

我必须使用json(链接)将上面的部分与自动完成的jquery ui doc结合起来.但我仍然不知道如何在第一个例子中填充第二个输入.

有任何想法吗?

这是jquery和html

<script language="javascript" type="text/javascript">
    $(function () {
        $("#university").autocomplete({
            source: function (request, response) {
                $.ajax({
                    type: "POST",
                    url: "AutoComplete.asmx/GetUniversities",
                    dataType: "json",
                    data: "{ 'data': '" + request.term + "' }",
                    contentType: "application/json; charset=utf-8",
                    success: function (data) {
                        response($.map(data, function (item) {
                            return {                                    
                                value: item.Descr,
                                UnivCode: item.UnivCode

                            }                                
                        }));
                    }
                });
            } 
        });          
    });
</script>
<div class="ui-widget"> 
    <label for="university">University: </label> 
    <input id="university" type="text"/> 
    <label for="universityID">ID: </label> 
    <input id="universityID" type="text" /> 
</div> …
Run Code Online (Sandbox Code Playgroud)

asp.net jquery json jquery-ui autocomplete

7
推荐指数
1
解决办法
9819
查看次数

升级到SignalR-2.0.0-beta2时未生成/ signalr/hubs

我有一个在SignalR 1.1.2上运行的应用程序的工作聊天,它将被放到负载平衡的服务器上,所以我需要实现一个背板解决方案来同步服务器.

这是一个ASP.NET MVC4 .NET 4.5应用程序.使用SignalR Hub,而不是持久连接.该应用程序利用客户端的AngularJS来处理ui绑定和更新.

我按照此处列出的步骤实现了sql server背板,并使用了此处概述的1.x到2.0迁移中概述的步骤.解决方案构建,但是当点击使用SignalR的页面时,"/ signalr/hubs"脚本引用返回500错误.

这是我到目前为止所采取的步骤列表.

  • 使用nuget,删除了与SignalR 1.1.2相关的所有引用和依赖项.双重检查/ bin和/ packages目录以确保它们不再引用任何旧库.这是关于2.0升级的github 问题上的评论,该问题表示卸载和重新安装SignalR是升级的方法.

  • 通过软件包管理器控制台(PMC)安装SignalR 2.0.0-beta2 Install-Package Microsoft.AspNet.SignalR -Pre

  • 使用PMC安装SQL Server消息传递背板 Install-Package Microsoft.AspNet.SignalR.SqlServer -Pre

  • RouteTable.Routes.MapHubs();从Global.asax中删除

  • 在项目的根目录中创建了Startup类.

Startup.cs

using Microsoft.AspNet.SignalR;
using Microsoft.Owin;
using Owin;

namespace My.NameSpace
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapHubs();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 添加<add key="owin:AppStartup" value="My.NameSpace.Startup, App_Code"/><appSettings>Web.config内部

  • 在Startup.Configuration()方法中放置一个断点,并在应用程序启动时验证它是否被命中并执行app.MapHubs而没有异常

  • 我没有使用持久连接,所以没有包含该行,app.MapConnection<MyConnection>("/echo");并没有得到任何模棱两可的定义问题.

  • 聊天应用页面引用了以下库

    • jQuery的1.8.3.js
    • jquery.signalR-2.0.0-beta2.js
    • <script src='/signalr/hubs'></script>
    • AngularJS v1.1.5 …

.net c# asp.net-mvc signalr angularjs

7
推荐指数
1
解决办法
7106
查看次数

web.config转换从web.template.xml无法正常工作

我正在尝试按照此处所述进行web.config转换.我们已经在其他项目中使用了这种方法,它没有问题,但在这个新项目上没有.

这是我试过没有成功的测试

  • 在我得到项目名称错误的情况下更改wpp.targets文件的名称.我知道我正在使用的当前工作,因为它是唯一一个导致从web.template.xml重建web.config的转换.只有子模板不起作用.
  • 尝试使用xdt:Locator ="Match(name)"
  • 尝试.config扩展与.xml,我们的其他项目使用.xml
  • 配置管理器设置为我正在使用的项目使用"测试"配置.
  • web.template.Test.xml对我要替换的部分有xdt:Transform ="Replace"
  • web.template.xml有占位符
  • 尝试从wpp.targets中删除"CopyWebTemplateConfig"部分,如下面链接的堆栈问题所示.我们的其他项目有这个和"PropertyGroup"部分注释掉了,我尝试了两种组合.

我已经多次阅读了上面的链接和这个相关的堆栈问题,但看不出是什么问题.

注意发布转换确实有效.它创建一个web.template.xml文件,其中包含来自web.template.Test.xml的值,但不会像wpp.targets指示的那样创建web.config.xml.因此,这似乎是让构建转换正常工作的问题.

任何人都知道缺少什么?

wpp.targets

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <!-- Make sure web.config will be there even for package/publish -->
  <Target Name="CopyWebTemplateConfig" BeforeTargets="Build">
    <Copy SourceFiles="web.template.xml"
          DestinationFiles="web.config"/>
  </Target>

  <PropertyGroup>
    <PrepareForRunDependsOn>
      $(PrepareForRunDependsOn);
      UpdateWebConfigBeforeRun;
    </PrepareForRunDependsOn>
  </PropertyGroup>

  <!-- This target will run right before you run your app in Visual Studio -->
  <Target Name="UpdateWebConfigBeforeRun">
    <Message Text="Configuration: $(Configuration): Web.template.$(Configuration).xml"/>
    <TransformXml Source="web.template.xml"
              Transform="web.template.$(Configuration).xml"
              Destination="web.config" />
  </Target>

  <!-- Exclude the …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc web-config visual-studio-2010 visual-studio

6
推荐指数
1
解决办法
2871
查看次数

如何在C#中从API访问和使用XML

我的目标是从API中提取XML数据并将其加载到SQL Server数据库.我在这里尝试的第一步是访问数据并显示它.一旦我开始工作,我将循环遍历每一行并将值插入到sql server数据库中.当我尝试运行代码时,没有任何反应,当我将网址直接粘贴到浏览器中时,我收到此错误

"2010-03-08 04:24:17 Wallet exhausted: retry after 2010-03-08 05:23:58. 2010-03-08 05:23:58"
Run Code Online (Sandbox Code Playgroud)

对我而言,似乎foreach循环的每次迭代都会调用该站点,并且我被阻塞了一个小时.我是否以错误的方式从API检索数据?有没有办法将数据加载到内存或数组然后循环?

这是我一起攻击的一些代码.

using System;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Data;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            string userID = "123";
            string apiKey = "abc456";
            string characterID = "789";
            string url = "http://api.eve-online.com/char/WalletTransactions.xml.aspx?userID=" + userID + "&apiKey=" + apiKey + "&characterID=" + characterID;
            XmlDocument xmldoc = new XmlDocument(); …
Run Code Online (Sandbox Code Playgroud)

.net c# xml api

5
推荐指数
1
解决办法
8843
查看次数

gulp stream完成后无法获取文件的更新内容

我试图在我的package.json文件中删除版本号,然后使用更新版本号创建一个新的git标记.每当我运行bump任务时,创建的git标签都是旧版本号,而不是碰撞版本号.

我正在使用它gulp-load-plugins来注册我的所有插件并将它们映射到$,而不是必须手动声明它们.而不是var bump = require("gulp"); ... bump()我只是使用$.bump().

尝试#1
我的初始代码看起来像这样.

var gulp = require("gulp");
var $ = require('gulp-load-plugins')();

gulp.task('bump', function() {
  gulp.src(['package.json'])
    .pipe($.bump())
    .pipe(gulp.dest('./'));

  var config = require('./package.json');
  $.git.tag('v' + config.version, 'Version message');
  $.util.log("tag added: " + config.version);
});
Run Code Online (Sandbox Code Playgroud)

尝试#2
有些谷歌搜索似乎是一个异步vs同步问题,所以在阅读这篇博文之后,我创建了两个任务来测试它.

tag依赖于bump完成,大变化是在bump任务中的return语句.日志输出显示它们按顺序执行,但问题仍然存在.

var gulp = require("gulp");
var $ = require('gulp-load-plugins')();

gulp.task('bump', function() {
  return gulp.src(['package.json'])
    .pipe($.bump())
    .pipe(gulp.dest('./'));
});    

gulp.task('tag',['bump'], function() {
  var config = require('./package.json');
  $.git.tag('v' + config.version, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js gulp

3
推荐指数
1
解决办法
2698
查看次数

jQueryUI ThemeRoller样式不在打印版本中显示

我在我的页面上使用ThemeRoller和jQueryUI,并且样式没有应用于打印版本.

在jQueryUI中的某个地方是否会将媒体更改为全部而不是屏幕?或者还有什么阻止这些样式应用于打印版本的东西.

javascript jquery jquery-ui themeroller

2
推荐指数
1
解决办法
710
查看次数

坚持基本的Linq to XML查询

我正在尝试从namecheap sandbox api中提取信息,但无法弄清楚为什么我的linq查询无效.

这是一个示例响应.

XML

<ApiResponse Status="OK" xmlns="http://api.namecheap.com/xml.response">
  <Errors />
  <Warnings />
  <RequestedCommand>namecheap.domains.check</RequestedCommand>
  <CommandResponse>
    <DomainCheckResult Domain="google.com" Available="false" />
  </CommandResponse>
  <Server>WEB1-SANDBOX1</Server>
  <GMTTimeDifference>--4:00</GMTTimeDifference>
  <ExecutionTime>0.875</ExecutionTime>
</ApiResponse>
Run Code Online (Sandbox Code Playgroud)

C#

var doc = XDocument.Load(url);
var response = (
    from  r in doc.Root.Descendants("ApiResponse") 
    where 1==1
    select new  { 
        Errors = r.Element("Errors").Value,
        Warnings = r.Element("Warnings").Value,
        RequestedCommand = r.Element("RequestedCommand").Value,
        CommandResponse = r.Element("CommandResponse").Value,
        Server = r.Element("Server").Value
    }
);
Run Code Online (Sandbox Code Playgroud)

我也尝试使用相同的doc查询这个查询,看看是否有一个简单的例子.

var test = doc.Descendants("RequestedCommand").First().Value;
Run Code Online (Sandbox Code Playgroud)

但两者都返回null.那我哪里错了?我最终需要获得CommandResponse中的顶级元素和更深层元素.任何帮助也将不胜感激.

UPDATE

正如Jon的回答所提到的,主要是在引用各种元素时不使用命名空间的问题.也使用doc.Elements()而不是doc.Root.后人().

这是一个更新的工作版本.

XNamespace ns = "http://api.namecheap.com/xml.response";
var response = (
    from r in doc.Elements()
    select …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-xml

2
推荐指数
1
解决办法
235
查看次数

无法从listview WPF中的选定项目获取值

我有一个表单,用户输入有关新库存项目(ID,标题,价格,日期等)的数据.输入的数据将保存到集合中,然后在列表视图中重新显示.

我得到一个"指定的强制转换无效",指向"key =(int)lvwInventory.SelectedItems [0];" 在尝试提取所选值时.我正在尝试获取ID并使用它打开该项目的编辑窗口.

我在这做错了什么?

列出有问题的视图

<ListView Height="249" HorizontalAlignment="Left" Margin="27,28,0,0" Name="lvwInventory" VerticalAlignment="Top" Width="384" ItemsSource="{Binding col}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Type" DisplayMemberBinding="{Binding Type}" />
            <GridViewColumn Header="Title" DisplayMemberBinding="{Binding Title}" />
            <GridViewColumn Header="Price" DisplayMemberBinding="{Binding Price}" />
            <GridViewColumn Header="Date Added" DisplayMemberBinding="{Binding Date}" />
        </GridView>
    </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

stockobject类

public class StockObject
    {
        // create stock object properties
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime Date { get; set; }
        public double Price { get; set; } …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml listview

1
推荐指数
1
解决办法
2万
查看次数

有没有办法从损坏的数据库导出代码?

上周我在程序崩溃时修改了访问2010 db中的两个模块的部分,并且每次我尝试打开db时都会崩溃.我能够创建一个新数据库并从损坏的数据库中导入表和查询,但是当我尝试导入表单/宏/模块时,新数据库也会开始崩溃.我保留每日备份,但最终失去了几个小时的工作量.这种情况上周发生了两次,每次MS Access都会在没有警告的情况下崩溃并且VBA无法恢复.

该功能按预期工作,直到db崩溃似乎在某个未知点.我的VBA代码一定存在某种问题,因为这只是在我上周开始修改模块时才开始发生,但我无法确定它,因为在没有执行任何操作时实际发生了崩溃.即在保存期间.

有没有人知道是否可以将VBA导出而无需将其导出到另一个数据库?即导出它而不必使用MS Access这样做.在相关的说明中,是否有人创建了一个库,将查询定义,表模式和所有VBA导出到文本文件中,我可以将它们放入源代码管理中?

谢谢.

ms-access vba ms-access-2007 access-vba ms-access-2010

1
推荐指数
1
解决办法
4401
查看次数