51Testing软件测试论坛

标题: 鼠标悬停在用户头像上,显示当前用户名,webdriver获取不到这个用户名 [打印本页]

作者: 轻歌越野    时间: 2016-10-31 13:59
标题: 鼠标悬停在用户头像上,显示当前用户名,webdriver获取不到这个用户名

                WebElement usernamebtn=driver.findElement(By.xpath("(//button[@type='button'])[5]"));
                Actions action = new Actions(driver);
                action.clickAndHold(usernamebtn);
                Thread.sleep(2000);
                Alert jsAlert = driver.switchTo().alert(); //切换到警告框并将其窗口控点赋予Selenium的Alert,以此来操作弹出的警告框  
                System.out.println(jsAlert.getText());  
                jsAlert.accept();


用这个方法不行,这不是个提示框吗?


作者: 轻歌越野    时间: 2016-10-31 14:30
额,这儿人好少……
作者: 清晨一缕阳光    时间: 2016-10-31 15:45
建议把HTML代码贴出来,这样方便分析。
作者: yueyingmail    时间: 2016-10-31 17:21
我觉得你应该用这个方法先把鼠标放到那个头像上吧,你不是鼠标悬停吗?
action.moveToElement(usernamebtn)


作者: 轻歌越野    时间: 2016-10-31 17:33
yueyingmail 发表于 2016-10-31 17:21
我觉得你应该用这个方法先把鼠标放到那个头像上吧,你不是鼠标悬停吗?
action.moveToElement(usernamebtn ...

试过了,没用,
作者: 轻歌越野    时间: 2016-10-31 17:36
清晨一缕阳光 发表于 2016-10-31 15:45
建议把HTML代码贴出来,这样方便分析。

<button class="md-icon-button md-button md-ink-ripple" ng-transclude="" type="button" ng-click="$mdOpenMenu($event)" aria-haspopup="true" aria-label="{{Auth.name}}" aria-expanded="false" aria-owns="menu_container_4">
<md-icon class="ng-scope ng-isolate-scope md-font icon-person material-icons" md-font-icon="icon-person" aria-hidden="true"></md-icon>
<div class="md-ripple-container"></div>
作者: 轻歌越野    时间: 2016-10-31 17:39
清晨一缕阳光 发表于 2016-10-31 15:45
建议把HTML代码贴出来,这样方便分析。

本身是一个button,悬停的时候会显示当前用户名,如果点击它,会出现操作选项:账户信息和退出
如下:
<div id="menu_container_4" class="md-open-menu-container md-whiteframe-z2 md-active md-clickable" style="top: 8px; left: 1139px; transform-origin: left top 0px;" aria-hidden="false">
<md-menu-content role="menu">
<md-menu-item>
<a class="md-button md-ink-ripple" ng-transclude="" ui-sref=".profile" role="menuitem" href="#/main/profile">
<md-icon class="ng-scope ng-isolate-scope md-font icon-account_box material-icons" md-font-icon="icon-account_box" aria-hidden="true"></md-icon>
<span class="ng-binding ng-scope">账号信息</span>
</a>
</md-menu-item>
<md-menu-item>
<button class="md-button md-ink-ripple" ng-transclude="" type="button" ng-click="logout()" role="menuitem">
<md-icon class="ng-scope ng-isolate-scope md-font icon-exit_to_app material-icons" md-font-icon="icon-exit_to_app" aria-hidden="true"></md-icon>
<span class="ng-binding ng-scope">退出</span>
作者: joykao    时间: 2016-11-1 16:14
首先那个窗口不是alert,另外,不要老盯着那个button不放,你要找的元素是那个tooltip,正常应该是隐藏的,但是还是可以知道那个元素是什么,html代码中找不到就去问前端开发,知道关键属性了就可以定位出来了
作者: 轻歌越野    时间: 2016-11-1 16:58
joykao 发表于 2016-11-1 16:14
首先那个窗口不是alert,另外,不要老盯着那个button不放,你要找的元素是那个tooltip,正常应该是隐藏的, ...

好的,明白了,




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2