【发布时间】:2017-11-26 12:17:17
【问题描述】:
当涉及到 XING 的小组时,我遇到了 Selenium 的麻烦。到目前为止,我使用了两年多的解决方案不再起作用;他们一定改变了他们的 HTML。
主要 问题是某个选择元素没有打开(尝试通过单击打开它时),因此我无法访问“单击”或选择的选项。我看到一个包含下拉菜单的小边框,好像它被单击但没有排在第二位。 现在我已经花了很多时间来详细说明错误,我很确定这是因为 same(意思是相同的属性,...)下降down 存在于同一页面的另一个位置(用于对组显示的帖子进行排序/过滤)。但是,我想选择新帖子提交到的(子)论坛,这不起作用。
我尝试了很多很多很多不同的方法,但显然都没有奏效。我无法在这里列出我所有的尝试,因为它太多了,而且部分时间太久了。我尝试过的一些方法:
- 通过各种方法(CSS 选择器、类名、XPath、...)选择下拉列表
- 直接访问所需的下拉选项(通过 CSS 选择器、类名、XPath;甚至尝试收集所有元素的数组并按索引选择正确的元素,也不起作用)
- 直接通过 JavaScript 访问所需的下拉菜单选项并通过 JS '单击'它
现在这就是我的希望。我想了一种方法来选择 - 完全 - 这个下拉列表(而不是描述的另一个下拉列表)由子元素等等(这就是这个问题的标题的原因)。 这是 HTML:
<div class="comm-navigation forum-select is-open" id="new-post-forum-select" data-is-open="true">
<a href="#" class="comm-navigation-trigger">
<span class="comm-navigation-name" title="Select forum">Select forum</span>
<i class="comm-navigation-icn-closed foundation-icon-shape-arrow-down"></i>
<i class="comm-navigation-icn-open foundation-icon-shape-arrow-up"></i>
</a>
<ul class="comm-navigation-dropdown hidden" style="width: 519px; display: block;">
<li class="comm-navigation-group forum-list">
<ul>
<li class="comm-navigation-item">
<a href="/communities/forums/100941274" class="comm-navigation-forum" data-forum-id="100941274" data-forum-name="Members" title="Members">
Members
</a>
</li>
<li class="comm-navigation-item">
<a href="/communities/forums/100941276" class="comm-navigation-forum" data-forum-id="100941276" data-forum-name="Q & A" title="Q & A">
Q & A
</a>
</li>
<li class="comm-navigation-item">
<a href="/communities/forums/100941275" class="comm-navigation-forum" data-forum-id="100941275" data-forum-name="Feedback" title="Feedback">
Feedback
</a>
</li>
</ul>
</li>
</ul>
<input type="hidden" name="post[forum_id]" id="post_forum_id" value="">
</div>
我想也许从comm-navigation forum-select is-open(在没有is-open 时它仍然关闭时也是如此)到内部元素以获得正确的Chrome 元素,然后单击该选项。
另外,我发现有一个隐藏字段:
<input type="hidden" name="post[forum_id]" id="post_forum_id" value="">
这与我的问题完全相关; value 是空的,只要没有选择任何内容,一旦选择,论坛的 id 就会插入到值中。我可以想象如果没有任何 JS 阻止您在没有实际通过下拉菜单选择子论坛的情况下提交表单。
期待出色的解决方案。
【问题讨论】:
标签: c# selenium selenium-webdriver