python - 继续向下滚动,直到找到相应的过滤器(元素?)并单击它 - Selenium Python
问题描述
嗨,我目前正在做 selenium Python。场景是这样的:我目前试图找到某个“元素”或者说过滤器(因为我在网上商店做硒),例如我想找到一个过滤器名称:“LCD”。
结果是错误。问题是这个 LCD 不在屏幕上,这意味着我需要向下滚动,直到该过滤器出现或在屏幕上可见,然后我才能单击它。问题是我不知道正确的代码,或者我可能编码错误。我的代码是这样的:
我的浏览器将继续向下滚动(条件“除外”),直到找到我选择的元素过滤器。问题是它没有点击。是的,它出现在屏幕上,但没有点击(这应该是“尝试”的条件)。
while finding_click is False:
try:
driver.find_element_by_xpath('//*[contains(text(),"' + filtchooseText + '")]').click()
finding_click = True
except:
driver.execute_script("window.scrollTo(0, {});".format(scroll))
scroll = scroll + 20
我想知道怎么了?我想知道如果这是错误的代码是什么?继续向下滚动,直到找到相应的元素然后单击它...?
我使用的软件:Pycharm、Selenium
解决方案
如果浏览器处于全屏模式,那么下面的代码应该适合您。
最大化它:
driver.maximize_window()
driver.get("some URL")
然后找到过滤器并点击它使用 ActionChains :
while True:
try:
ActionChains(driver).move_to_element(driver.find_element_by_xpath('//*[contains(text(),"' + filtchooseText + '")]')).click().perform()
break
except:
driver.execute_script("window.scrollTo(0, {});".format(scroll))
scroll = scroll + 20
推荐阅读
- firefox - 如何为 Firefox 安装 fishshell 补全和联机帮助页
- python - 写入文件时,open 使用的编码是否会依赖于您正在写入的字符串?
- rust - `Vec 的通用 API 是什么
Rust中字符串的`和flatbuffers'向量? - django - RelatedObjectDoesNotExist:用户没有供应商
- python - 为什么不能添加 PPA 死蛇?
- javascript - 带有 Babel 的 Webpack 给出未捕获的引用错误:未定义要求
- reactjs - axios 拦截器请求未获取异步存储 access_token 并且为空?
- azure-devops - 在服务器上安装多个 Azure DevOps 环境代理
- wordpress - 带有 wordpress 的 IIS ARR 无法从 Internet 错误超时
- android - AndroidX 依赖项在 gradle.properties 文件中不起作用