Codeception:检查元素是否具有焦点?

时间:2017-05-21 11:56:35

标签: selenium codeception

有没有办法断言元素(例如输入或链接)是否具有键盘焦点?我正在使用Selenium的Codeception。在http://codeception.com/docs/modules/WebDriver

上找不到任何内容

3 个答案:

答案 0 :(得分:4)

一位可靠的消息来源告诉我这项工作:

$I->executeJS('return $("#element").is(":focus")');

快乐测试!

答案 1 :(得分:1)

answer by @sunomad

的更多细节

acceptance.suite.yml

中激活Codeception Asserts Module
modules:
    enabled:
        # ...
        - Asserts

然后在验收测试中使用它:

$focus = $I->executeJS('return $("#element").is(":focus")');
$I->assertEquals(true, $focus);

使用Firefox和Chrome工作(通过Selenium)。但是,它不适用于PhantomJS - 请参阅此问题:https://github.com/ariya/phantomjs/issues/10427

答案 2 :(得分:0)

完成@sunomad的回答。 如果您使用代码行:

                            map.getMapAsync(new OnMapReadyCallback() {
                                @Override
                                public void onMapReady(GoogleMap googleMap) {
                                    LatLng coordinates = new LatLng(Double.parseDouble(gps_x), Double.parseDouble(gps_y));
                                    googleMap.addMarker(new MarkerOptions().position(coordinates).icon(BitmapDescriptorFactory.fromBitmap(resizeMapIcons("ico_pin_small",80,88)))).showInfoWindow();
                                    googleMap.moveCamera(CameraUpdateFactory.newLatLng(coordinates));
                                    googleMap.animateCamera(CameraUpdateFactory.zoomTo(15));
                                    map.onResume();
                                }
                            });

您收到此错误:

  

[Facebook \ WebDriver \ Exception \ UnknownServerException]未知错误:$不是函数

$I->executeJS('return $("#element").is(":focus")'); 切换为$

$ I-> executeJS('返回jQuery(“#element”)。is(“:focus”)');

它有效!