gpt4 book ai didi

python - Selenium:避免 ElementNotVisibleException 异常

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:12 25 4
gpt4 key购买 nike

我从来没有认真研究过 HTML,所以我要说的可能是不对的。

当我编写 selenium 代码时,我注意到某些网页上的某些按钮不会重定向到其他页面,但它们会更改第一个页面的结构。据我了解,发生这种情况是因为有一些 JavaScript 代码修改了它。

所以,当我想获取一些在第一页加载时不存在的数据时,我只需单击正确的按钮序列即可获取它,对吗?

我要加载的页面是https://watch.nba.com/ ,而我想要得到的是某一天的比赛列表。获取它的最快途径是打开日历:

calendary = driver.find_element_by_class_name("calendar-btn")
calendary.click()

然后单击选定的日期:

page = calendary.find_element_by_xpath("//*[contains(text(), '" + time.strftime("%d") + "')]")

page.click()

运行此代码,我收到此错误:

selenium.common.exceptions.ElementNotVisibleException

我在某处读到问题是页面未正确加载,或者元素不可见/不可点击,所以我尝试了这个:

wait = WebDriverWait(driver, 10)

page = wait.until(EC.visibility_of_element_located((By.XPATH, "//*[contains(text(), '" + time.stfrtime("%d") + "')]")))
page.click()

但是这次我得到了这个错误:

selenium.common.exceptions.TimeoutException

你能帮我解决这两个问题中的至少一个吗?

最佳答案

您遇到这种行为的原因是因为此页面加载了 iFrame(我可以在主页上看到 15 个),一旦您单击日历按钮,您将需要将上下文切换到 defaultContext 或 a日历所在的特定 iframe。有大量代码向您展示如何切换到和退出 iframe。希望这会有所帮助。

关于python - Selenium:避免 ElementNotVisibleException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43049844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com