首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何单击展开按钮以使用Selenium C#打开区段

如何单击展开按钮以使用Selenium C#打开区段
EN

Stack Overflow用户
提问于 2016-08-11 14:54:24
回答 2查看 12.7K关注 0票数 3

我在单击展开按钮时遇到了问题,该按钮打开页面中列出分类法复选框的部分。

似乎webdriver认为它正在完成单击“展开”按钮的操作,但该部分仍然是折叠的。

下面是HTML的一部分

代码语言:javascript
复制
metadata-editor name="resourceModelTaxonomyTypeIds" label-text="Type" matadata-fieldname="Type" resource-id="id" selected-ids="resourceModel.TaxonomyTypeIds" required class="ng-isolate-scope"
<div class="form-group" ng-class="{'has-error': (required && form.$submitted && !isValid)}"
  ::before
  <div class="col-md-9">
  <!-- ngRepeat: node in loadSelectedNodes() -->
  <br ng-show="loadSelectedNodes().length > 0" class="ng-hide"
  <button type="button" class="btn btn-sm btn-info btn-expand-taxonomy ng-pristine ng-binding ng-invalid ng-invalid-valid ng-touched" name="resourceModelTaxonomyTypeIds" ng-model="selectedIds" ng-click="toggleView(isCollapsed)"><span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span> Expand</button>

以下是我的一些工作,但没有奏效:

尝试1:我尝试了简单的.Click()操作

代码语言:javascript
复制
driver.FindElement(By.Name("resourceModelTaxonomyTypeIds")).Click();

结果: Webdriver通过了步骤,但是屏幕上没有发生任何事情,展开按钮仍然被折叠,并且该选项仍然隐藏。

尝试2:我尝试了MoveToElement操作

代码语言:javascript
复制
Actions clickExpand = new Actions(driver);
clickExpand.MoveToElement(driver.FindElement(By.Name("resourceModelTaxonomyTypeIds"))).Click().Perform();

结果:和以前一样,webdriver认为一切正常,但实际上扩展按钮还没有扩展该部分。

尝试3:安装了Selenium,做了一个记录和回放,查看它作为什么代码(通过转换为C#),Selenium用.Click()操作记录它,就像我在上面的尝试中尝试的那样。

我有点被困在为什么这个按钮不能工作了。是否有人遇到过或处理过这类展开按钮?

注意:手动测试展开按钮,通过单击以证明按钮工作,只有webdriver似乎没有这样做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-16 14:17:49

对于这种类型的展开按钮,如果你真的按下了枕形-雪佛龙并点击那个,那么动作会执行.

代码语言:javascript
复制
driver.FindElement(
            By.CssSelector(
                ".glyphicon.glyphicon-chevron-right")).Click();

当按钮折叠时,雪佛龙是“右”,当展开雪佛龙是“向下”,所以在理论上,如果你有多重展开,你可以重复相同的代码,将展开所有它们.或者更聪明,与父母交往,但两者都有效。

若要单击以折叠屏幕区域,您需要.

代码语言:javascript
复制
driver.FindElement(
                By.CssSelector(
                    ".glyphicon.glyphicon-chevron-down")).Click();
票数 2
EN

Stack Overflow用户

发布于 2016-08-11 17:44:05

我想知道这个元素是否已经可以点击了?您试过使用WebDriverWait并使用预期的条件标志吗?一些样本代码。这里有更多的参考资料,http://selenium-python.readthedocs.io/waits.html?highlight=webdriverwait

代码语言:javascript
复制
try:
    more = WebDriverWait(self.driver, 10,poll_frequency=2,ignored_exceptions=[ElementNotVisibleException, ElementNotSelectableException]).until(EC.element_to_be_clickable((By.Name, 'resourceModelTaxonomyTypeIds'))) 
except TimeoutException:
    break 

more.click()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38899799

复制
相关文章

相似问题

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