在以下网站:https://www1.hkexnews.hk/search/titlesearch.xhtml?lang=en
我正试图通过selenium选择以下下拉列表选项:
在Headline category and Document Type
下,在第一个下拉列表中选择Headline Category
,然后在第二个列表中选择Announcements and Notices -> New Listings (Listed Issuers/New Applicants -> Allotment Results
。你知道吗
我已经意识到你必须使用driver.find_element_by_css_selector()
,因为列表上的项目都没有唯一的ID。
我还意识到,当选项不在视图中时,您必须滚动页面,以便CSS选择器可以选择它。你知道吗
我所拥有的东西应该有用,但它没有?有人能帮我解决这个问题吗?你知道吗
```python
# Select dropdown list
driver.find_element_by_css_selector('#rbAfter2006 > div > div > div').click()
# Select Announcements and Notices
driver.find_element_by_css_selector('#rbAfter2006 > div ~ div > div > div > div > ul > li ~ li ').click()
# Scroll down so that New Listings (Listed Issuers/New Applicants) is in view
element = driver.find_element_by_css_selector('#rbAfter2006 > div ~ div > div > div > div > ul > li ~ li > a '
'~ div > div > ul > li ~ li ~ li ~ li ~ li ~ li ~ li ~ li ~ li')
actions = ActionChains(driver)
actions.move_to_element(element).perform()
# Click New Listings (Listed Issuers/New Applicants)
driver.find_element_by_css_selector('#rbAfter2006 > div ~ div > div > div > div > ul > li ~ li > a '
'~ div > div > ul > li ~ li ~ li ~ li ~ li ~ li ~ li ').click()
# THIS IS WHAT FAILS, Can't find element? I am currently printing the box so I know what is selected
print(driver.find_element_by_css_selector('#rbAfter2006 > div ~ div > div > div > div > ul > li ~ li > a '
'~ div > div > ul > li ~ li ~ li ~ li ~ li ~ li ~ li > a ~ div > ul > li ~ li').text)
```
我当前得到一个元素找不到一个错误
你能试着用css选择器从下拉列表中得到一个值吗
然后循环查找匹配的值并单击它
理想情况下,我们不应该选择这样复杂的css选择器元素,尽量缩短css选择器。你知道吗
那么
尝试将鼠标悬停到下拉列表中的第一个元素,如下所示:
那么
尝试滚动到需要使用的元素
注意:代码是Ruby的,请尝试翻译成python并使用。这也许会有帮助
要从下拉列表中单击项,请使用
WebDriverWait
和presence_of_element_located()
,然后使用location_once_scrolled_into_view
并使用以下xpath单击元素。你知道吗浏览器快照
相关问题 更多 >
编程相关推荐