2017-11-04 1 views
1

저는 파이썬에서 셀렌과 함께 아코디언 링크를 열려고합니다.Python에서 셀렌을 사용하여 아코디언 열기

<div class="crm-accordion-body" style="display: none;"> 

이 때 개방 :

<div class="crm-accordion-body" style="display: block;"> 

나는 스타일을 변경하는 데 사용할 노력하고있어 코드는 다음과 같습니다

driver.execute_script("document.getElementsByClassName('crm-accordion-body').style.display = 'block';") 
닫을 때

는 요소는 다음과 같습니다

이로 인해 다음 오류가 발생합니다.

WebDriverException: Message: unknown error: Cannot set property 'display' of undefined 
    (Session info: chrome=61.0.3163.100) 
    (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.1.7601 SP1 x86_64) 

누구나 내가 뭘 잘못하고 있는지 알아?

감사합니다.

답변

1

기본적으로 document.getElementsByClassName('crm-accordion-body')은 노드 목록을 반환합니다.

document.getElementsByClassName('btn-pageMenu')[0].style.display 
그래서

우리가 첫 번째 노드의 style="display: none;"을 변경하려고으로, 다음 코드 줄 시도 :

driver.execute_script("document.getElementsByClassName('crm-accordion-body')[0].style.display='block';") 
+0

을 그래서 우리는 다음과 같이 구성 노드를 잡아 인덱스를 사용해야합니다 나는 불행히도 공간없이 같은 결과를 얻는다. –

+0

답변이 업데이트되었습니다. 상태를 업데이트하십시오. – DebanjanB

+1

하나의 작은 변화와 함께 작동합니다. 어떤 이유로 인덱스를 2로 변경해야했습니다. 감사! 이/어떤 대답이 당신에게 도움이된다면, 응답을 Upvote하십시오. 'driver.execute_script ("document.getElementsByClassName ('crm-accordion-body ') [2] .style.display ='블록 ';")' –

관련 문제