首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Selenium如何单击带有隐藏属性的按钮

Selenium如何单击带有隐藏属性的按钮
EN

Stack Overflow用户
提问于 2020-05-16 22:17:34
回答 1查看 315关注 0票数 0

我需要点击一个按钮,它是网格菜单的一部分。它显示网格中的项目价格列,默认情况下它是隐藏的。

代码语言:javascript
复制
<button type="button" class="ui-grid-menu-item" ng-click="itemAction($event, title)" ng-show="itemShown()" ng-class="{ 'ui-grid-menu-item-active': active(), 'ui-grid-sr-only': (!focus &amp;&amp; screenReaderOnly) }" aria-pressed="" tabindex="0" ng-focus="focus=true" ng-blur="focus=false" aria-hidden="true"><i ng-class="icon" aria-hidden="true" class="ui-grid-icon-ok">&nbsp;</i> Item Price</button>

我采取了一种方法,首先使它显示通过设置咏叹调-隐藏=“假”。

代码语言:javascript
复制
        IJavaScriptExecutor js = (IJavaScriptExecutor)(_chromeDriver);
        js.ExecuteScript("document.getElementByXPath('//*[@id='menuitem-5']/button').setAttribute('aria-hidden', 'false')");

但我收到了javascript错误。

代码语言:javascript
复制
javascript error: missing ) after argument list
  (Session info: chrome=81.0.4044.138)

我也查过这个答案

Selenium EventFiringWebDriver JavaScript: SyntaxError: missing ) after argument list

但还没有解决办法。我该怎么解决呢?我的方法是正确的还是我应该改变?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-16 22:22:27

可以使用javascript直接单击元素。

代码语言:javascript
复制
IWebElement element = _chromeDriver.FindElement(By.XPath("//*[@id='menuitem-5']/button"));

js.ExecuteScript("arguments[0].click();", element);

我认为你所看到的错误来自于这一行:

代码语言:javascript
复制
IJavaScriptExecutor js = (IJavaScriptExecutor)(_chromeDriver);

将其更改为:

代码语言:javascript
复制
IJavaScriptExecutor js = ((IJavaScriptExecutor)_chromeDriver);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61844334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档