2017-12-20 44 views
4

헤드리스 크롬이 요소를 감지하지 못하는 것으로 나타났습니다. 다음 스크립트는 작동하지 않습니다.헤드리스 크롬이 CSS 요소를 감지하지 못함

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.support.ui import WebDriverWait 

options = Options() 
options.add_argument("--headless") 
driver = webdriver.Chrome(chrome_options=options) 
driver.set_window_size(1024, 600) 
driver.maximize_window() 

driver.get('https://www.sportsbet.com.au/betting/soccer?LeftNav') 

wait = WebDriverWait(driver, 10) 
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".link"))) 
print('hi') 

머리가 아님으로 변경하십시오.

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.support.ui import WebDriverWait 

driver = webdriver.Chrome() 
driver.set_window_size(1024, 600) 
driver.maximize_window() 

driver.get('https://www.sportsbet.com.au/betting/soccer?LeftNav') 

wait = WebDriverWait(driver, 10) 
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".link"))) 
print('test2') 

성공!

나는 헤드리스 얻을 :

line 49, in <module> 
    wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".link"))) 
    File "C:\Users\Django\AppData\Local\Continuum\miniconda3\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until 
    raise TimeoutException(message, screen, stacktrace) 
selenium.common.exceptions.TimeoutException: Message: 

변경 CSS : DIV를 : n 번째 자녀 (1)> A> span.team-name.ib

난 여전히 같은 오류가 발생합니다. 왜이 일을하는거야?

+0

'https : //www.sportsbet.com.au/betting/soccer? LeftNav' URL을 열 수 없습니다. 'HTML'을 제발 공유 할 수 있습니까? – DebanjanB

+0

@DebanjanB VPN 또는 프록시를 사용해보십시오. 그것은 당신이 지역에 잠겨있을 수 있습니다. view-source : https : //www.sportsbet.com.au/betting/soccer? LeftNav –

+0

이것은 매우 이상합니다. –

답변

4

헤드리스 브라우저를 사용하는 경우 리디렉션 된 것처럼 보입니다.

추가 :

user_agent = 'I LIKE CHOCOLATE' 
options.add_argument(f'user-agent={user_agent}') 

지금 실행

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.support.ui import WebDriverWait 

options = Options() 
options.add_argument("--headless") 
user_agent = 'I LIKE CHOCOLATE' 
options.add_argument(f'user-agent={user_agent}') 
driver = webdriver.Chrome(chrome_options=options) 
driver.set_window_size(1024, 600) 
options.add_argument("--headless"); 
driver.maximize_window() 

driver.get('https://www.sportsbet.com.au/betting/soccer?LeftNav') 

wait = WebDriverWait(driver, 10) 
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".link"))) 
print('hi') 

성공!