【发布时间】:2022-01-23 04:36:40
【问题描述】:
我正在抓取一个 VUE.js 网站,当我在 Selenium 中打开调试模式时,它可以找到并单击一个下拉按钮,但是当我在正常模式下运行它时,它会抛出以下内容错误信息:
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <select id="sortselectbox" data-ph-at-id="search-page-sort-drop-down" class="form-control au-target" value.bind="searchParams.sortBy" change.delegate="sortfilterSearch()" tabindex="0" data-ph-id="ph-page-element-page20-4VGGDW" au-target-id="169">...</select> is not clickable at point (707, 444). Other element would receive the click: <div class="chatBotNotificationText" tabindex="0">...</div>
(Session info: headless chrome=96.0.4664.110)
这是我找到下拉按钮的方式
Order = driver.find_element_by_xpath("//*[@id='sortselectbox']")
在此之前,我将滚动到网站顶部,以便驱动程序可以看到 sortselectbox
driver.execute_script("window.scrollTo(0, 220)") #Page up
这是 HTML 元素
<select id="sortselect" data-ph-at-id="search-page-sort-drop-down" class="form-control au-target" value.bind="searchParams.sortBy" change.delegate="sortfilterSearch()" tabindex="0" data-ph-id="ph-page-element-page20-UCZFWs" au-target-id="150"> <option value="Most relevant" key="c-internal-digital-technology-it-53pxnB-ph-search-results-v2-view4-mostRelevantText" data-ph-id="ph-page-element-page20-srcQGN"> Most relevant </option> <option value="Most recent" key="c-internal-digital-technology-it-53pxnB-ph-search-results-v2-view4-mostRecentText" data-ph-id="ph-page-element-page20-Br2Xo6"> Most recent </option> </select>
我尝试在滚动前后添加更多睡眠,但似乎在那一步失败了。所有迹象都表明滚动在正常模式下不起作用。我是否必须找到另一种方法来定位 sortselectbox 按钮而不使用 window.scrollTo 脚本?
谢谢!
【问题讨论】:
-
用相关的 HTML 更新问题
-
不幸的是,该网站不可公开访问,而且由于它是在 JS 中,所以源代码也不是静态的。
-
我也不是要网站网址,而是所需元素的相关 HTML。
-
对不起,我误解了你我用 HTML 元素更新了我的原始帖子。
标签: python selenium xpath css-selectors html-select