python - 单击单选按钮 Selenium/Python
问题描述
我正在按最近的顺序创建一个 Linkedin 作业抓取工具,但我发现很难定位“最近”单选按钮,如下所示。
到目前为止,点击了“最相关”菜单,但不会点击“最新”。帮助将不胜感激我似乎无法弄清楚这一点:/
代码片段
driver.get('https://uk.linkedin.com/jobs/bioinformatics-jobs?position=1&pageNum=0')
driver.implicitly_wait(10)
driver.find_element_by_class_name('collapsible-dropdown').click() # Clicks 'sort-by' menu.
driver.find_element_by_xpath('//*[@id="sortBy-0"]').click() # Error!
HTML
<button aria-expanded="true" aria-label="Sort By filter. Most relevant filter is currently applied. Clicking this button displays all Sort By filter options." class="filter-button filter-button--selected dropdown-to-modal__button collapsible-dropdown__button" data-tracking-control-name="public_jobs_sortBy" type="button">
Most relevant
<icon class="filter-button__icon"></icon>
</button>
<div class="collapsible-dropdown__list no-focus-ring" tabindex="-1">
<!-- -->
<fieldset class="filter-values-container">
<legend class="filter-values-container__legend sr-only">Sort By filter options</legend>
<div class="filter-values-container__filter-values">
<div class="filter-values-container__filter-value">
<input checked="" form="jserp-filters" id="sortBy-0" name="sortBy" type="radio" value="R"/>
<label for="sortBy-0">
Most relevant
</label>
</div>
<div class="filter-values-container__filter-value">
<input form="jserp-filters" id="sortBy-1" name="sortBy" type="radio" value="DD"/>
<label for="sortBy-1">
Most recent
</label>
</div>
</div>
</fieldset>
<button aria-label="Apply filters" class="filter__submit-button" data-tracking-control-name="public_jobs_sortBy" form="jserp-filters" type="submit">
Done
</button>
</div>
<div class="filter-values-container__filter-value">
<input id="sortBy-1" form="jserp-filters" name="sortBy" value="DD" type="radio">
<label for="sortBy-1">
Most recent
</label>
</div>
</div>
</fieldset>
<button class="filter__submit-button" aria-label="Apply filters" form="jserp-filters" data-tracking-control-name="public_jobs_sortBy" type="submit">
Done
</button>
</div>
解决方案
试试这个
driver.find_element_by_xpath('//*[@id="jserp-filters"]/ul/li[1]/div/div/div/fieldset/div/div[2]').click()
你的xpath不完整
推荐阅读
- java - 第三方图形库中的 NotSerializableException
- sql-server - 在 T-SQL 中关联大表上的子查询的最有效方法是什么?
- c# - 如何安全地检查反序列化中的未初始化值
- java - 如何创建一个 get 方法来返回一个字符串和一个整数?
- javascript - 未定义的属性“长度” - React 教程
- php - YAML 使用 PHP 解析返回对象而不是数组
- javascript - 如何使用 vuelidate 验证具有 N 个元素的数组的第 N 个元素
- c# - 从 C# 到 Flask REST API 的 HTTP 发布请求不会附加任何参数?
- date - 考虑到工作日的星期六,我如何计算两个日期之间的工作日数?
- ios - 如何从@objc函数在UIViewControllers之间传递数据数组