EDIT : 문제 자체가 해결되었으므로 대답을 수락했습니다. 나는 순서 link 는 셀레늄 작품 (실제로 나는 내가 ElementNotVisibleException 오류을받을 맨 마지막 줄에 데이터에 관심이 얼마나 이해하기 위해 다음의 웹 페이지에서 데이터를 잡기 위해 노력하고Python Selenium - ElementNotVisibleException
. 다음과 같이 내 코드가 보인다 :
- 클릭을 "1"위 표에서 "Spieltagsübersicht" 에 : 코드가 어떻게해야 무엇
path = mypath
url = 'http://www.bundesliga.de/de/liga/statistik/spieltag/'
#### SCRIPT TO TEST SELENIUM
#### (0) Load driver
driver = webdriver.PhantomJS(path)
driver.set_window_size(1120, 550)
driver.get(url)
#### (1) Define XPATHs
XPATH_MATCHDAY = '//*[contains(@class, "has-data")]'
XPATH_GAMES = "//*[contains(text(), 'mehr zum Spiel')]"
XPATH_TEAMSTATS = "//span[contains(text(), 'Teamstatistik')]"
### (2) Click links to Teamstats
# Select Matchday 1
matchday = driver.find_elements_by_xpath(XPATH_MATCHDAY)[0]
matchday.click()
# Select game one
game = driver.find_elements_by_xpath(XPATH_GAMES)[0]
game.click()
# Select teamstats tab (bottom of page)
teamstats = driver.find_elements_by_xpath(XPATH_TEAMSTATS)[0]
time.sleep(.5)
teamstats.click()
그러나 Teamstatistik 탭이 표시되지만 오류가 발생합니다.
나는 stackoverflow에서이 오류에 대해 집중적으로 읽었으며 마지막 줄에서 다음과 같은 작업을 시도했습니다. 그러나 그때 나는 TimeoutException을 얻는다.
teamstats = WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,"XPATH_TEAMSTATS")))
teamstats.click()
나는 이것을 PhantomJS와 Chrome에서 모두 시도했지만이 문제를 해결할 수 없었습니다. 클릭하려고하는 "Teamstatistik"탭이 항상 나에게 보여지기 때문에 다소 의아해합니다. "teamstats.is_visible 사용할 수있는 경우 시도했습니다.하지만 (수정 : 이제 시도한 .is_displayed 및 FALSE 얻을.) 그러나이 표시 할 수 있습니까?이 경우조차 가능합니까?)
이를 위해, 나는 ElementNotVisibleException 오류를 방지하는 방법을
- 에 어떤 조언에 감사 것/코드
- 을 개선하는 방법 셀레늄은 대안을 고려하는 것은 웹 사이트에 이런 종류의 최선의 선택 인 경우 BeautifulSoup
지원해 주셔서 감사합니다. 이것은 실제로 내 첫 번째 게시물입니다.
teamstats = driver.find_elements_by_xpath(XPATH_TEAMSTATS)[0]
time.sleep(.5)
driver.execute_script('arguments[0].scrollIntoView()', teamstats)
teamstats.click()
당신은 또한 아래로 페이지를 스크롤이 간단한 방법을 시도 할 수 있습니다 : 그래서 페이지의 보이지 않는 부분에있는 대상 요소로
답장을 보내 주셔서 감사합니다. 나는이 게시물을 보았지만 나의 이해는 해결 방법이 javascrip에 있다는 것이다. 그래서 이것이 파이썬에서 어떻게 작동하는지 이해하지 못한다. – FredMaster
그건 그렇고, Java이지만, 'ElementNotVisibleException'이 발생하는 가장 일반적인 이유가 거기에 나열되어 있는지 확인하고 어떤 것이 당신인지를 확인하십시오. – Arman
is_displayed 시도하고 응답으로 "거짓"가져옵니다. 그래서 고마워. 그러나 아직도 그것을 고치는 방법을 모른다. – FredMaster