我正在尝试刮擦显示值列表的网站。我需要选择一个值和刮擦,然后选择另一个选择。我只是无法执行此操作,保存页面后,我看到了以下值列表的代码:
<div class="dropdown-component spacing-left spacing-top">
<!-- ko component: { name: "dropdown-component", params: { value: categoryDropdown } } --><div class="btn-group" data-bind="attr: { 'data-id': id }" data-id="dropdown-component-118db170-aa45-43ac-94ee-8d78c72bda58">
<button type="button" class="dropdown-toggle dropdown-component clear" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-bind="event: { keydown: onKeyDown }">
<div class="table-dropdown">
<div class="text">
<span data-bind="i18n: labelKey, visible: labelKey">Category</span>
<span data-bind="text: seperator, visible: seperator && selectedOptionHasText()">:</span>
<!-- ko if: selectedText() -->
<span data-bind="text: selectedText">All</span>
<!-- /ko -->
<!-- ko if: selectedTextKey() --><!-- /ko -->
</div>
<div class="icon caret"></div>
</div>
</button>
<ul class="dropdown-menu scrollable-dropdown" data-bind="foreach: options, css: css">
<li data-bind="css: { highlighted: !isCategory && id === $parent.highlightedOption() }, event: { mouseenter: $parent.onMouseEnter, mouseout: $parent.onMouseOut }" class="">
<!-- ko if: isNoType -->
<a data-bind="text: text, click: $parent.action.bind($index), i18n: textKey, 'i18n-options': textKeyReplacements">All</a>
<!-- /ko -->
<!-- ko if: isCategory --><!-- /ko -->
<!-- ko if: isCategoryItem --><!-- /ko -->
</li>
<li data-bind="css: { highlighted: !isCategory && id === $parent.highlightedOption() }, event: { mouseenter: $parent.onMouseEnter, mouseout: $parent.onMouseOut }" class="">
<!-- ko if: isNoType -->
<a data-bind="text: text, click: $parent.action.bind($index), i18n: textKey, 'i18n-options': textKeyReplacements">Not Classified</a>
<!-- /ko -->
<!-- ko if: isCategory --><!-- /ko -->
<!-- ko if: isCategoryItem --><!-- /ko -->
</li>
它表明LOV具有为其分配的动态ID。有什么想法如何从此LOV中选择值?它具有诸如" all","未分类"等的值。
我能够通过以下
解决此问题driver.find_element_by_xpath("//span[contains(.,'Category')]").click()
driver.execute(driver.find_element_by_xpath("//a[contains(text(),'Not Classofied')]").click())
这解决了我的问题,但是我在python中收到一个错误,为:" keyError:none"。
我不确定为什么会出现这个错误,但是随着时间的流逝,我被一个try-except块忽略了。
在CSS中,您会得到:
.dropdown-menu.scrollable-dropdown li a