小编Rec*_*Dan的帖子

使用selenium webdriver作为基类python

我为这一个搜索了一会儿,很惊讶我找不到任何东西,也许是因为它很简单.我已经在python中编程了大约3个月,使用selenium webdriver进行自动化测试.我认为让类继承自我的webdriver类以向其添加更多功能会很方便.

    from selenium import webdriver

    class myPage(webdriver):

          def __init__(self):
                super(myPage, self).__init__()

          def set_up(self):
                #doStuff...
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我得到错误>>>

    File "c:\Users\me\...\myProgram.py", line 6, in <module>
        class myPage(webdriver):
    TypeError: module.__init__() takes at most 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)

当我创建myPage对象时代码是......

    from myProgram import myPage
    class Test():
          def do(self):
                self.browser = myPage.Firefox()
Run Code Online (Sandbox Code Playgroud)

所以它通过并运行self.browser = myPage.Firefox()行,当它运行时.__init __()不知怎的,它给了它三个参数,我不知道它们来自哪里.我显然遗漏了一些东西,因为继承并不难.谢谢你的帮助

python inheritance selenium webdriver base-class

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

使用roslyn将鼠标悬停在源树符号的数据上

问题:如何将我的个人DocumentationProvider应用于源树符号?当我使用SymbolFinder.FindSymbolAtPosition()时,我得到的符号类型是什么

具体来说,我想覆盖GetDocumentationForSymbol()函数.我为自动完成符号覆盖了它,但不是我悬停在上面的符号.

背景:

嗨,我正在使用roslyn为我正在创建的文本编辑器收集intellisense.我需要做的一件事是快速信息或工具提示.我有它为自动完成建议工作.通过使用看起来像这样的片段

   compilation = CSharpCompilation.Create(
        "MyIntellisense",
        new[] { CSharpSyntaxTree.ParseText(dotNetCode) },
        assemblies
    .Select(i => MetadataReference
    .CreateFromFile(i.Location, MetadataReferenceProperties.Assembly,
    new DotNetDocumentationProvider(
    new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));
Run Code Online (Sandbox Code Playgroud)

这使用我自己的个人DotNetDocumentationProvider,它以我需要的方式解析XML和文档.这适用于汇编符号,这是我使用Recommender.GetRecommendedSymbolsAtPosition()时所具有的符号类型.

编辑:只是想给更多的背景:)

我用两种不同的方式得到符号.

1)一种方式是我打电话

var symbols = Recommender.GetRecommendedSymbolsAtPosition(semanticModel, offset, solution.Workspace);
Run Code Online (Sandbox Code Playgroud)

当用户要求提供自动完成信息时,我会使用此信息.通过这些符号,我可以查看每个电话:

var information = symbol.GetDocumentationCommentXml();
Run Code Online (Sandbox Code Playgroud)

这最终调用了一个我从类DocumentationProvider中重写的函数:

protected override string GetDocumentationForSymbol(string documentationMemberID, CultureInfo preferredCulture, CancellationToken cancellationToken = default(CancellationToken))
Run Code Online (Sandbox Code Playgroud)

2)第二种方式是当用户盘旋时

var symbol = SymbolFinder.FindSymbolAtPosition(semanticModel, offset, workspace, cancellationToken);
Run Code Online (Sandbox Code Playgroud)

我调用完全相同的函数(实际上来自同一行代码,保持干燥)

var information = symbol.GetDocumentationCommentXml();
Run Code Online (Sandbox Code Playgroud)

但是这不会调用我重写的GetDocumentationCommentXml(),而是调用默认的Roslyn.

谢谢!

c# intellisense roslyn

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