python - Python/Selenium webdriver 中的 ElementNotVisibleException 错误
问题描述
我为网络抓取工作编写了这段代码:
browser.find_element_by_class_name('open_all_j').click()
此代码行给了我一个错误:
selenium.common.exceptions.ElementNotVisibleException:消息:元素不可见
我的完整代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common import keys, action_chains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup as soup
import xlwt
def click_time():
browser = webdriver.Chrome("./Drivers/chromedriver.exe")
browser.implicitly_wait(20)
browser.get("https://www.geegeez.co.uk/race-cards/#display=cards&day=0")
timeTable = browser.find_elements_by_class_name('meeting')
timeRow = timeTable[0].find_element_by_class_name("races")
timeRowTable = timeRow.find_elements_by_class_name("race_card_race")
timeRowTD = timeRowTable[0].find_elements_by_xpath("//table")
x = timeRowTable[0].find_element_by_class_name("cardstable")
y = x.find_element_by_class_name("racetime")
y.click()
print('\n', len(browser.find_elements_by_id('tabs-cards')), '\n')
wait = WebDriverWait(browser, 20)
elem = wait.until(EC.presence_of_element_located((By.ID, "tabs-cards")))
#browser.find_element_by_xpath("//div[@class = 'open_all_r']").click() #find_element_by_class_name('open_all_r')
browser.find_elements_by_class_name('open_all_j')[0].click()
browser.find_elements_by_class_name('open_all_t')[0].click()
我尝试使用:
browser.find_element_by_xpath("//div[@class = 'open_all_r']").click()
这段代码行给了我同样的错误。
请帮我...
解决方案
发生这种情况的原因有很多,例如元素未滚动到视图中
driver.execute_script("arguments[0].scrollIntoView();", element)
如果这没有帮助,请尝试 java script click
driver.execute_script("arguments[0].click();", element)
推荐阅读
- ios - 无限循环尝试使用 Xcode 11 beta 在 swift 5 中从 xib 创建自定义视图
- c - 对我的代码的任何建议时限裁决
- java - 按属性隔离列表
- android - 按钮和工具栏内容之间的共享元素过渡
- java - 如何将类名存储在任何变量中并将其与 instanceof 运算符一起使用
- apache-nifi - 如何使用rest api或cli在nifi 1.7的处理器中删除流文件?
- google-analytics - 我可以编辑“页面”网址以使其在报告中更具可读性吗?
- python - 如何去除晶圆图生成图像中的十字准线和轮廓?
- java - 如何通过 HTTP 将 UTF-8 字符作为字符串发送
- node.js - Sequelize V5 - 创建模型时不支持 BOOLEAN 数据类型