当在网页中编写selenium脚本时,它可以自动登录窗口,但在网站中的侧边栏选项不起作用
driver.findElement(By.xpath("//*[@id='mCSB_22_container']/ul/li[8]/i"));我使用过这些xpath,但无法正常工作
<li _ngcontent-c11="" routerlinkactive="active" title="Alert Configuration" tabindex="0" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" class="fa fa-exclamation-triangle" style="color:rgb(214, 111, 111);"></i>
</li>
<!----><li _ngcontent-c11="" title="Device Profile">
<i _ngcontent-c11="" aria-hidden="true" class="fa fa-cog" style="color:lightBlue;"></i>
</li>
<!----><li _ngcontent-c11="" title="Poles">
<img _ngcontent-c11="" src="./assets/images/lamp-pole-group-12x12.png"> </li>
<!----><li _ngcontent-c11="" title="Lamps">
<img _ngcontent-c11="" src="./assets/images/pole-lamps-12x12.png" class="mCS_img_loaded"> </li>
<li _ngcontent-c11="" routerlinkactive="active" title="Commissioning Process" tabindex="0" style="display: inherit;">
<img _ngcontent-c11="" src="./assets/images/Commissioning-Process.png" class="mCS_img_loaded">
</li>
<!----><li _ngcontent-c11="" title="Groups" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" class="fa fa-users" style="color:#8edd34;"></i>
</li>
<!----><li _ngcontent-c11="" title="Reports" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" class="fa fa-bar-chart" style="color:#d3d347;"></i>
</li>
<!---->
<li _ngcontent-c11="" routerlinkactive="active" title="Archival" tabindex="0" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" class="fa fa-archive"></i>
</li>
</ul>
Dashboard Device Trends Alerts – Notifications <li _ngcontent-c11="" class="li-h" style="display: inherit;">User
Management</li>
<!----><li _ngcontent-c11="" routerlinkactive="active" title="Users" tabindex="0" class="active">
<i _ngcontent-c11="" aria-hidden="true" style="color:#3289c8;">
<div _ngcontent-c11="" class="fa fa-user mlr10 aligncenter"></div>
</i>Users</li>
<li _ngcontent-c11="" class="overflowEllipsel" routerlinkactive="active" title="Roles & Permissions" tabindex="0" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" style="color:lightBlue;">
<div _ngcontent-c11="" class="fa fa-check-square-o mlr10 aligncenter"></div>
</i>Roles & Permissions</li>
<li _ngcontent-c11="" class="overflowEllipsel" routerlinkactive="active" title="User Activity Tracking" tabindex="0" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true">
<div _ngcontent-c11="" class="fa fa-pencil-square-o mlr10 aligncenter"></div>
</i>User Activity Tracking</li>
<li _ngcontent-c11="" class="li-h" style="display: inherit;">Configuration
Settings</li>
<li _ngcontent-c11="" class="overflowEllipsel" routerlinkactive="active" title="Project Configuration" tabindex="0" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" style="color:lightBlue;">
<div _ngcontent-c11="" class="fa fa-handshake-o mlr10 aligncenter"></div>
</i>Project Configuration</li>
<!----><li _ngcontent-c11="" class=" overflowEllipsel" routerlinkactive="active" title="One Step Onboarding" tabindex="0">
<i _ngcontent-c11="" aria-hidden="true" style="color:#fff;">
<div _ngcontent-c11="" class="fa fa-user mlr10 aligncenter"></div>
</i>One Step Onboarding</li>
<li _ngcontent-c11="" class="arrow-toggle collapsed" data-target="#collapseHierarchy" data-toggle="collapse" title="Hierarchy" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true">
<div _ngcontent-c11="" class="fa fa-bar-chart mlr10 aligncenter"></div>
</i>Hierarchy
<span _ngcontent-c11="" class="fr mlr10">
<span _ngcontent-c11="" class="fa fa-plus caret1 plr5"></span>
<span _ngcontent-c11="" class="fa fa-minus caret1 plr5"></span>
</span>
</li>
<ul _ngcontent-c11="" class="collapse " id="collapseHierarchy">
<li _ngcontent-c11="" class="pl1cm overflowEllipsel" routerlinkactive="active" title="Hierarchy Definition" tabindex="0" style="display: inherit;">Hierarchy Definition</li>
<li _ngcontent-c11="" class="pl1cm overflowEllipsel" routerlinkactive="active" title="Hierarchy Creation" tabindex="0" style="display: inherit;">Hierarchy Creation</li>
</ul>
<li _ngcontent-c11="" class=" overflowEllipsel" routerlinkactive="active" title="Alert Configuration" tabindex="0" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" style="color:rgb(214, 111, 111);">
<div _ngcontent-c11="" class="fa fa-exclamation-triangle mlr10 aligncenter"></div>
</i>Alert Configuration</li>
<!----><li _ngcontent-c11="" class="arrow-toggle collapsed" data-target="#collapseExample" data-toggle="collapse" title="Device Profiles">
<i _ngcontent-c11="" aria-hidden="true" style="color:lightblue">
<div _ngcontent-c11="" class="fa fa-cog mlr10 aligncenter"></div>
</i>Device Profile
<span _ngcontent-c11="" class="fr mlr10 ">
<span _ngcontent-c11="" class="fa fa-minus caret1 plr5"></span>
<span _ngcontent-c11="" class="fa fa-plus caret1 plr5"></span>
</span>
</li>
<!----><ul _ngcontent-c11="" class="collapse" id="collapseExample">
<li _ngcontent-c11="" class="pl1cm overflowEllipsel" routerlinkactive="active" title="Device Profile Master" tabindex="0">Device Profile Master</li>
<li _ngcontent-c11="" class="pl1cm overflowEllipsel" routerlinkactive="active" title="Profile Settings" tabindex="0">Profile
Settings</li>
</ul>
<!----><li _ngcontent-c11="" class="li-h">Device
Onboarding</li>
<!----><li _ngcontent-c11="" class="arrow-toggle collapsed" data-target="#collapsePoles" data-toggle="collapse" title="Poles">
<img _ngcontent-c11="" class="mlr10" src="./assets/images/lamp-pole-group-12x12.png"> Poles
<span _ngcontent-c11="" class="fr mlr10 w15">
<span _ngcontent-c11="" class="fa fa-minus caret1 plr5"></span>
<span _ngcontent-c11="" class="fa fa-plus caret1 plr5"></span>
</span>
</li>
<!----><ul _ngcontent-c11="" class="collapse" id="collapsePoles">
<!----><li _ngcontent-c11="" class="pl1cm overflowEllipsel pr15" routerlinkactive="active" title="Poles Management" tabindex="0">Poles
Management</li>
<!----><li _ngcontent-c11="" class="pr15 pl1cm overflowEllipsel" routerlinkactive="active" title="Poles Association with Hierarchy" tabindex="0">Poles
Association with Hierarchy</li>
</ul>
<!----><li _ngcontent-c11="" class="arrow-toggle collapsed" data-target="#collapseLamps" data-toggle="collapse" title="Lamps">
<img _ngcontent-c11="" class="mlr10" src="./assets/images/pole-lamps-12x12.png"> Lamps
<span _ngcontent-c11="" class="fr mlr10 w15">
<span _ngcontent-c11="" class="fa fa-minus caret1 plr5"></span>
<span _ngcontent-c11="" class="fa fa-plus caret1 plr5"></span>
</span>
</li>
<!----><ul _ngcontent-c11="" class="collapse" id="collapseLamps">
<!----><li _ngcontent-c11="" class="pl1cm overflowEllipsel pr15" routerlinkactive="active" title="Lamp Management" tabindex="0">Lamp
Management</li>
<!----><li _ngcontent-c11="" class="pl1cm overflowEllipsel pr15" routerlinkactive="active" title="Lamp Association with Poles" tabindex="0">Lamp
Association with Poles</li>
</ul>
<!---->
<!---->
<li _ngcontent-c11="" class="li-h" style="display: inherit;">Group
Actions</li>
<li _ngcontent-c11="" class="arrow-toggle collapsed overflowEllipsel" routerlinkactive="active" title="Commissioning Process" type="button" tabindex="0" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" style="color:lightblue">
<div _ngcontent-c11="" class=" mlr10 w15" style="display: inline-block;">
<img _ngcontent-c11="" src="./assets/images/Commissioning-Process.png" class="mCS_img_loaded">
</div>
</i>Commissioning Process
</li>
<!----><li _ngcontent-c11="" class="arrow-toggle collapsed" data-target="#collapseGroup2" data-toggle="collapse" title="TCL-Multicast" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" style="color:#97972d;">
<div _ngcontent-c11="" class="fa fa-rss mlr10 aligncenter"></div>
</i>TCL-Multicast
<span _ngcontent-c11="" class="fr mlr10">
<span _ngcontent-c11="" class="fa fa-minus caret1 plr5"></span>
<span _ngcontent-c11="" class="fa fa-plus caret1 plr5"></span>
</span>
</li>
<ul _ngcontent-c11="" class="collapse " id="collapseGroup2">
<!----><li _ngcontent-c11="" title="Configuration" tabindex="0" style="display: inherit;">Configuration</li>
<!----><li _ngcontent-c11="" routerlinkactive="active" title="Broadcasting" tabindex="0" style="display: inherit;">Broadcasting</li>
</ul>
<!---->
<ul _ngcontent-c11="" class="collapse " id="collapseGroup1">
<!---->
<!---->
</ul>
<!---->
<ul _ngcontent-c11="" class="collapse " id="collapseGroup3">
<!---->
<!---->
</ul>
<li _ngcontent-c11="" class="li-h" style="display: inherit;">Reports</li>
<!----><li _ngcontent-c11="" class="arrow-toggle collapsed" data-target="#collapseReports" data-toggle="collapse" title="Reports" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true" style="color:#d3d347;">
<div _ngcontent-c11="" class="fa fa-bar-chart mlr10 aligncenter"></div>
</i>Custom Reports
<span _ngcontent-c11="" class="fr mlr10">
<span _ngcontent-c11="" class="fa fa-minus caret1 plr5"></span>
<span _ngcontent-c11="" class="fa fa-plus caret1 plr5"></span>
</span>
</li>
<!----><ul _ngcontent-c11="" class="collapse " id="collapseReports">
<!---->
<li _ngcontent-c11="" class="pl1cm overflowEllipsel" routerlinkactive="active" title="Health Report" tabindex="0" style="display: inherit;">
Health Report</li>
<li _ngcontent-c11="" class="pl1cm overflowEllipsel" routerlinkactive="active" title="Reports" tabindex="0" style="display: inherit;">Reports</li>
</ul>
<li _ngcontent-c11="" class=" overflowEllipsel" routerlinkactive="active" title="Email Scheduler" tabindex="0" style="display: inherit;"><i _ngcontent-c11="" aria-hidden="true" style="color:#a2a284;">
<div _ngcontent-c11="" class="fa fa-envelope mlr10 aligncenter"></div>
</i>Email Scheduler</l
<li _ngcontent-c11="" class="li-h" style="display: inherit;">Other</li>
<li _ngcontent-c11="" routerlinkactive="active" title="Archival" tabindex="0" style="display: inherit;">
<i _ngcontent-c11="" aria-hidden="true">
<div _ngcontent-c11="" class="fa fa-archive mlr10 aligncenter"></div>
</i>Archival</li>
</ul>发布于 2019-03-30 20:09:50
在这里你需要找到元素的部分链接
driver.findElement(By.partialLinkText("design-series")).click();如果上面的代码:
WebElement hover = driver.findElement(By.xpath("//*[@id=\"menu-item-11496\"]"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", hover);JavaScriptExecutor是一个通过Selenium Webdriver.In Selenium Webdriver帮助执行JavaScript的接口,XPath、CSS等定位器用于识别和执行网页上的操作。
如果这些定位器不起作用,您可以使用JavaScriptExecutor。您可以使用JavaScriptExecutor对web元素执行所需的操作。
JavaScriptExecutor Methods
1)executeAsyncScript
使用异步脚本,您的页面呈现速度更快。而不是强制用户在页面呈现之前等待脚本下载。此函数将在Selenium中当前选定的框架或窗口的上下文中执行一段异步JavaScript。这样执行的JS是单线程的,带有各种同步运行的回调函数。
2)executeScript
此方法在Selenium中当前选定的框架或窗口的上下文中执行JavaScript。此方法中使用的脚本在匿名函数(没有名称的函数)的主体中运行。我们也可以将复杂的参数传递给它。
脚本可以返回值。返回的数据类型为
-Boolean
-Long
-String
-List
-WebElement
JavascriptExecutor的基本语法如下:
语法:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript(Script,Arguments);脚本-这是需要执行的JavaScript。
参数-它是脚本的参数。这是可选的。
如果需要更多信息,请访问此link
https://stackoverflow.com/questions/55429772
复制相似问题