小编Nat*_*ill的帖子

是否可以输入提示lambda函数?

目前,在Python中,函数的参数和返回类型可以是类型提示,如下所示:

def func(var1: str, var2: str) -> int:
    return var1.index(var2)
Run Code Online (Sandbox Code Playgroud)

表示该函数接受两个字符串,并返回一个整数.

但是,这种语法与lambdas非常混淆,它看起来像:

func = lambda var1, var2: var1.index(var2)
Run Code Online (Sandbox Code Playgroud)

我已经尝试在参数和返回类型上添加类型提示,我无法找出一种不会导致语法错误的方法.

是否可以输入提示lambda函数?如果没有,是否有计划暗示lambda,或任何原因(除了明显的语法冲突)为什么不呢?

python lambda

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

如何在没有文本框的Selenium中上传文件

我一直在寻找在Selenium 2中上传文件的解决方案.

问题是我尝试上传的网页元素有两种使用方式:拖放或点击按钮.没有字段输入框.并不是说我没有尝试使用sendKeys.我已经在按钮和所有周围元素上尝试过了.

这个问题的第二部分是我在Windows机器上编写,但自动化发生在Linux机器上.这意味着AutoIt不起作用.这是上传框的HTML.

<div class="up-target" id="up-drop-zone">
    <div class="up-drop-zone-pre hidden">
        <p>Please choose a folder to upload</p>
    </div>
    <div class="up-drop-zone-decor">
        <p>Drop one or more files here</p>
        <p>or</p>
        <button name="uploadFile" class="upload">Select Files</button>
        <input type="file" id="up-drop-zone-input" name="files[]" multiple="true">
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在使用Java,并对Selenium之外的其他方法开放(但是,我只选择了maven存储库).

谢谢!

java selenium automated-tests file-upload selenium-webdriver

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

Java泛型和覆盖

为什么会发生以下情况:

public class one{
   public <T extends Foo> Bar<Foo> function1() {}
   public Bar<Foo> function2(){}
}
Run Code Online (Sandbox Code Playgroud)
public class two<F extends Foo> extends one{
   public Bar<F> function1(){} //Doesn't throw an error
   public Bar<F> function2(){} //Throws an error
}
Run Code Online (Sandbox Code Playgroud)

通过说<T extends Foo>我说Foo可以用超类型覆盖?

注意:我的问题不是为什么function2()抛出错误...但为什么function1() 抛出错误.

java generics

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

IndexOutOfBoundsException抛出的UndeclaredThrowableException

我正在使用装饰器模式List<WebElement>.这个装饰的部分需要使用代理.

当我get(index)使用超出范围的索引调用时,它会抛出一个IndexOutOfBounds异常,然后由代理捕获,并用一个包装UndeclaredThrowableException.

我的理解是它应该在它被检查的异常时才这样做. IndexOutOfBounds是一个未经检查的异常,为什么它被包裹?

即使我添加throws IndexOutOfBounds到我的invoke函数,它仍然会被包装.

这是我的代码:

@SuppressWarnings("unchecked")
public WebElementList findWebElementList(final By by){
    return new WebElementList(
            (List<WebElement>) Proxy.newProxyInstance(this.getClass().getClassLoader(),
                    new Class<?>[] { List.class }, new InvocationHandler() {
        // Lazy initialized instance of WebElement
        private List<WebElement> webElements;

        public Object invoke(Object proxy, Method method, Object[] args)
                throws Throwable {
            if (webElements == null) {
                webElements = findElements(by);
            }
            return method.invoke(webElements, args);
        }
    }), driver); …
Run Code Online (Sandbox Code Playgroud)

java proxy-classes

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

如何返回一个延迟实例化的动态webelement

我已经使用@FindBy了一段时间了,我喜欢这个元素直到它必要时才被定位的事实(不是实例化).

但是,网页可能有2-10个特定元素,并且元素上的id已编号(因此第一个元素的id为"element1",依此类推)

我想写一个函数,我可以传入一个整数,它将返回一个具有适当ID的WebElement,并且是懒惰实例化的.这意味着具有以下功能将无法正常工作:

public WebElement getElement(int numOnPage){
    return driver.findElement(By.id("element"+numOnPage));
}
Run Code Online (Sandbox Code Playgroud)

因为即时我调用WebElement所定位的函数.(它无法实例化的原因是因为我有一个函数,通过一遍又一遍地调用isDisplayed()来等待元素存在,捕获NoSuchElementExceptions).

我也意识到我可以创建一个List<WebElement>通过CSS选择ID以"element"开头的每个元素,但我还有其他情况需要返回一个动态生成的元素,并且还必须在那里使用解决方法.

谢谢!

java selenium webdriver

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

存储随机状态

我正在设计一个程序,它:

  1. 包括随机性
  2. 可以在某些点停止执行并保存其状态(在 XML 中)
  3. 可以从保存的状态开始执行
  4. 是确定性的(因此程序可以从同一状态运行两次并产生相同的结果)

这里的问题是保存随机性。我可以在开始时初始化它,但从一个状态到另一个状态,我可能会生成 0 到 1000 个随机数。

因此,我可以看到 3 个选项:

  1. 存储种子,以及随机生成数字的次数,然后在加载状态时,多次运行随机数生成器。
  2. 在状态保存时,将种子增加 N
  3. 状态保存时,随机生成下一个种子

选项 1 的问题是运行时间,并且非常不可行。

但是,我不确定 2 或 3 是否会产生良好的随机结果。如果我运行两个随机生成器,一个以 X 为种子,另一个以 X+1 为种子,它们的结果会有多大不同?如果第一个以 X 为种子,第二个以 X.random() 为种子怎么办?

以防万一,我使用的是 Python 3。

python random

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

如何向Guice接口添加默认方法

我有以下界面:

public interface FooFactory {
    Foo create();

    default Foo createWithData(Data data){
        Foo foo = create();
        foo.addData(data);
        return foo;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在安装它如下:

install(new FactoryModuleBuilder().build(FooFactory.class));
Run Code Online (Sandbox Code Playgroud)

但是,问题是Guice用自己的工厂方法覆盖了我的默认方法.我得到的Foo与Foo相同create()(没有设置数据).永远不会调用默认方法.

现在,这只是一种方便的方法,但是我可以告诉Guice不要覆盖我的功能吗?

java guice java-8

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

将JMeter与REST Web服务和XML正文一起使用时,未检测到有效负载

我正在使用JMeter进行负载测试.我的测试包含一个简单的POST请求.当我执行此请求时,服务器在其错误日志中说No Payload Detected.我已经验证服务器正在接收Post请求,并且我在Raw Post Body中尝试了不同的文本.

接下来,为了确保它不是服务器的问题,我使用了一个不同的Http Request程序(Wiztools rest客户端)来发送具有相同内容的帖子.它工作正常,不会No Payload Detected抛出任何错误.

我目前的理论是JMeter和服务器都进行解析.我知道服务器会这样做,因为它正在寻找一小块数据,并且JMeter的解析会破坏这一小块数据.

总而言之,我的问题是"JMeter做什么解析?".
我已经找到了这个答案,我唯一知道它解析的是${VARNAME}.

我发送的文字如下:

<IpReport xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
  <ProductReviewId>12345</ProductReviewId>
  <DepartmentCode>ABC</DepartmentCode>
  <ProductTitle>Test of a teaser</ProductTitle>
  <ProjectId>2</ProjectId>
  <ProductCodePD>ICS-1139150</ProductCodePD>
  <Priority>Pre-Approved</Priority>
  <Status>Approved</Status>
  <IpStatus>Submitted</IpStatus>
  <EvalStatus>Approved</EvalStatus>
  <EvalNotes>No Limitations - message from eval</EvalNotes>
  <Notes>Notes test</Notes>
  <IsInClarity>true</IsInClarity>
  <IsPreRelease>true</IsPreRelease>
  <IsApproved>true</IsApproved>
  <IsCOREvalIP>false</IsCOREvalIP>
  <Elements>
    <IpReportElement>
      <IpReportElementLineItemId>21774</IpReportElementLineItemId>
      <ElementType>ReportingStatement</ElementType>
      <Contributor>Sample Contributor</Contributor>
      <Description>test</Description>
      <LocationInProduct>test</LocationInProduct>
      <ReportingStatementId>7</ReportingStatementId>
      <IpCodeId>3</IpCodeId>
      <Links>
        <IpReportLink>
          <IpReportLinkId>25982</IpReportLinkId>
          <Name>Link</Name>
          <Url>https://example.org/</Url>
        </IpReportLink>
      </Links>
    </IpReportElement>
  </Elements>
  <CustomData>&lt;site&gt;ldsorg&lt;/site&gt;
&lt;site-root&gt;/preview/ldsorg/&lt;/site-root&gt;
&lt;correlation-document-id&gt;123456-eng&lt;/correlation-document-id&gt;
&lt;post-to-server&gt;l12773:9239&lt;/post-to-server&gt;
</CustomData>
  <ApprovalNumber>2013-1139150-I</ApprovalNumber>
  <EvalApprovalNumber>2013-1139150-E</EvalApprovalNumber>
</IpReport>
Run Code Online (Sandbox Code Playgroud)

这是JMeter的截图.这是唯一的请求,没有其他配置元素: JMeter截图

jmeter http-post

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

如何从类型中提取类型参数

鉴于以下类:

abstract class Foo[B] 
abstract class Baz[B, F <: Foo[B]] {
    def get(foo: F): B
    // other methods
} 
Run Code Online (Sandbox Code Playgroud)

我讨厌Baz当第一个参数是多余的时我需要两个类型参数。我想写一些类似的东西:

abstract class Baz[F <: Foo[B]] {
  def get(foo: F): B
}
Run Code Online (Sandbox Code Playgroud)

我是否可以在不使用多个类型参数的情况下在 Baz 中引用 B 类型(F)?这感觉应该是可能的,但我似乎无法弄清楚语法。

generics types scala

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

用R中的漂移和/或趋势生成随机游走

在R中生成随机游走非常简单.它由以下代码完成:

x <- rnorm(100)
y <- cumsum(x)
Run Code Online (Sandbox Code Playgroud)

但是如何使用趋势和/或漂移生成/模拟随机游走?

r drift trend random-walk

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