我从来没有认真研究过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个iframe)。单击“日历”按钮后,需要将上下文切换到defaultContext或日历所在的特定iframe。有大量的代码向您展示了如何切换iframe。希望这有帮助。你知道吗
相关问题 更多 >
编程相关推荐