Python Selenium元素在弹出窗口中不可见

时间:2017-08-15 05:52:30

标签: javascript python selenium

不确定我收到以下错误的原因。

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible

我试图点击每个游戏的“更多”按钮后点击Box Score链接(每个游戏都没有GT链接)。我有问题因为此按钮显示在弹出窗口中吗?

我试图通过使用time.sleep(5)左右来解决这种情况,但是同样的错误会打印到屏幕上,因此似乎不会等待链接加载/出现。< / p>

这是我的代码:

schedule = 'http://www.gamecocksonline.com/sports/m-basebl/sched/scar-m-basebl-sched.html'
options = webdriver.ChromeOptions(); options.add_argument("--start-maximized")
driver = webdriver.Chrome(chrome_options=options)
driver.get(schedule)

#Find 'More' button, scroll to, and click
python_button = driver.find_elements_by_xpath("//a[@class='sch-view-more']")[idx]
driver.execute_script("return arguments[0].scrollIntoView();", python_button)
driver.execute_script("window.scrollBy(0, -150);")
python_button.click()

#Click on Box Score link
python_button = driver.find_element_by_xpath("//a[text()='Box Score']")
python_button.click()

#Pass HTML to Beautiful Soup and close browser window
soup = BeautifulSoup(driver.page_source)
playbyplay(soup) #Reads info from the html
driver.quit()

1 个答案:

答案 0 :(得分:0)

我能够在这里解决自己的问题(感谢@DebanjanB指出评论中的一些内容)。

添加等待时间以允许链接变得可用,以及观察页面顶部的游戏遵循与我搜索的相同的xpath是主要解决方案。

#Click on Box Score link
time.sleep(1)
python_button = driver.find_elements_by_xpath("//span[@class='sch-event-related']")[-1]
python_button.click()