小编emu*_*ahy的帖子

Selenium WebDriver:Fluent等待按预期工作,但隐式等待没有

我是Selenium WebDriver的新手,我正在努力理解"等待"元素出现的正确方法.

我正在测试一个包含一系列带有单选按钮答案的问题的页面.当您选择答案时,Javascript可能会启用/禁用页面上的一些问题.

问题似乎是Selenium"点击太快"而不是等待Javascript完成.我试过用两种方法解决这个问题 - 显式等待解决了这个问题.具体来说,这是有效的,并解决了我的问题:

private static WebElement findElement(final WebDriver driver, final By locator, final int timeoutSeconds) {
    FluentWait<WebDriver> wait = new FluentWait<WebDriver>(driver)
            .withTimeout(timeoutSeconds, TimeUnit.SECONDS)
            .pollingEvery(500, TimeUnit.MILLISECONDS)
            .ignoring(NoSuchElementException.class);

    return wait.until(new Function<WebDriver, WebElement>() {
        public WebElement apply(WebDriver webDriver) {
            return driver.findElement(locator);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

但是,我宁愿使用隐式等待而不是这样.我的网页驱动程序配置如下:

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)

这没有解决问题,我得到一个NoSuchElementException.另外,我没有注意到10秒的暂停 - 它只是立即出错.我已经验证了代码中的这一行是用调试器命中的.我究竟做错了什么?为什么implicitlyWait不等待元素出现,但FluentWait呢?

注意:正如我所提到的,我已经有了解决方法,我真的只想知道为什么隐式等待不能解决我的问题.谢谢.

selenium webdriver

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

使用CUDA模块构建GPL C程序

我正在尝试修改用C编写的GPL程序.我的目标是用CUDA实现替换一个方法,这意味着我需要用nvcc而不是gcc编译.我需要帮助构建项目 - 不实现它(你不需要了解CUDA C的任何帮助,我不认为).

这是我第一次尝试更改涉及.configure和Makefile的中等复杂度的C项目.老实说,这是我第一次在C中做很长时间的事情,包括gcc或g ++的任何事情,所以我很丢失.

我对学习configure和Makefiles并不感兴趣 - 这更像是一个实验.我想在花费时间创建正确的构建脚本之前看看项目实现是否顺利.(并不是不愿意在必要时学习,只是试图了解范围).

话虽如此,我有什么选择来构建这个项目?我有很多问题......

  • 我尝试在AC_PROG_CC之后将"CC = nvcc"添加到configure.in文件中.这似乎工作 - 从运行configure和make输出显示nvcc作为编译器.但是,无法使用CUDA内核编译源文件,而无法识别CUDA特定语法.我不知道为什么,希望这会有效.

  • 是否可以使用nvcc编译源文件,然后将其包含在主程序的make过程的链接步骤中?如果是这样,怎么样?(这个问题可能没有意义 - 我真的生气了)

  • 这样做的正确方法是什么?

  • 我可以使用快速而肮脏的方式进行测试吗?

  • 每个人都使用一些秘密工具来设置和理解这些配置和Makefile吗?这比我习惯的Apache Ant脚本更糟糕(是的,我不在我的境界)

cuda makefile nvcc

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

Java Collections.sort - 帮我删除未经检查的警告

List<Question> questions = new ArrayList<Question>();
questions.addAll(getAllQuestions()); //returns a set of Questions
Collections.sort(questions, new BeanComparator("questionId")); //org.apache.commons.beanutils.BeanComparator
Run Code Online (Sandbox Code Playgroud)

在Java 1.5下,上述工作正常,只是'new BeanComparator("questionId")'生成一个未经检查的警告.我不喜欢警告.有没有办法可以为BeanComparator提供一个类型,还是我必须使用@SuppressWarnings("unchecked")

java generics comparator apache-commons-beanutils

10
推荐指数
2
解决办法
9978
查看次数

Ionic 3 - 每个页面都需要自己的模块吗?

我是Ionic的新手并试图了解如何组织中型应用程序.

每个页面都应该有自己的模块吗?或者将类似的页面分组到同一个模块中会更好吗?甚至可以这样做吗?看来IonicPageModule.forChild()方法只接受一个页面:

    IonicPageModule.forChild(AdministerUsersPage)
Run Code Online (Sandbox Code Playgroud)

那么每个页面都可以拥有自己的模块吗?拥有这么多模块有什么缺点吗?

看起来我们从一个极端走到另一个极端 - 没有模块在根上下文中声明所有内容,以便为每个页面分隔模块.

ionic2 ionic3

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

准备语句 - 使用函数作为where子句的一部分

我正在使用Java预处理语句从Oracle数据库获取数据.由于某些性能问题,查询使用"虚拟列"作为索引.

查询如下所示:

String status = "processed";
String customerId = 123;
String query = "SELECT DISTINCT trans_id FROM trans WHERE status = " + status + " AND FN_GET_CUST_ID(trans.trans_id) = " + customerId;

Connection conn = getConnection();
PreparedStatement ps = null;
ResultSet rs = null;

try {
  ps = conn.prepareStatement(query);
  ps.execute();
  ...
} catch (...)
Run Code Online (Sandbox Code Playgroud)

这不起作用.将该函数作为where子句的一部分会导致SQLException.我知道CallableStatement,并知道我可以先使用它然后连接结果.但是,此表使用FN_GET_CUST_ID(trans_id)作为其索引的一部分.有没有办法使用带有数据库函数的预准备语句作为查询参数?

java sql oracle prepared-statement

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