2017-12-07 2 views
0

드롭 다운을 스크롤하고 파이썬에서 webdriver를 통해 요소를 선택하려고합니다. 무슨 뜻입니까? "캘린더"드롭 다운이 열리고 "1990"년으로 스크롤 한 다음 선택하십시오. 하지만 그렇게 할 수 없습니다.WebDriver Python에서 캘린더에서 원하는 연도를 스크롤하고 선택할 수 없습니다.

def setUp(self): 
    driverlocation ="/Users/new/Documents/Learning/Drivers/selenium-2.53.1/py/selenium/webdriver/chromedriver" 
    os.environ["webdriver.chrome.driver"] = driverlocation 
    self.driver = webdriver.Chrome(driverlocation) 


def test_data(self): 
    driver = self.driver 
    url = "https://goods.theentertainerme.com/" 
    driver.get(url) 
    driver.maximize_window() 
    driver.implicitly_wait(10) 
    self.DateofBirth = driver.find_element_by_id("registrationform-date_of_birth") 
    self.DateofBirth.click() 
    Month = driver.find_element_by_xpath("//*[@id='ui-datepicker-div']/div/div/select[1]/option[6]") 
    Month.click() 

    Year= driver.find_element_by_xpath("//*[@id='ui-datepicker-div']//div/select[2]") 
    YearList = driver.find_elements_by_xpath("//*[@id='ui-datepicker-div']//div/select[2]") 
    Year.click() 
    Year1990= driver.find_element_by_xpath("//*[@id='ui-datepicker-div']//div/select[2]/option[28]") 
    driver.execute_script ("return arguments[0].scrollIntoView();",Year1990) 

누군가 나를 도와 줄 수 있습니까? 이 같은

+0

내가 "//"두 번 생각하지 않는다 다음 문서의 7.2 참조 div 앞에 필요합니다. 예를 들어 하나만 있으면됩니다./div 대신 // div – Danny

+0

그렇지 않으면 사용할 수 있습니다. 나는 그 (것)들의 많음에서 사용하고 성분은 발견되었다. –

+0

그래, 괜찮아. 둘 다 작동한다면 모두 일관되게하는 것이 가장 좋다. 또한, 위의 코드를 실행할 때 스택 추적 오류가 발생합니까? – Danny

답변

0

시도 뭔가 :

Year1990 = driver.find_element_by_xpath("//*[@id='ui-datepicker-div']/div/select[2]/option[28]") 
ActionChains(driver).move_to_element(Year1990).click(Year1990).perform() 

참고 : 나는 이동 한 이중 "//"사업부가 될 수 전에 하나 "/"예를 들어,/작업에 대한 자세한 내용은 // 사업부

또는 ...

Year1990 = driver.find_element_by_xpath("//*[@id='ui-datepicker-div']/div/select[2]/option[28]") 
actions = ActionChains(driver) 
actions.move_to_element(Year1990).Perform() 
Year1990.click() 

의 DIV instad는 http://selenium-python.readthedocs.io/api.html

관련 문제