일반적인 아코디언 스타일로 콘텐츠를 표시/숨기기위한 div가 있습니다. HTML은 다음과 같습니다.Selenium : WebDriverWait과의 타이밍 불일치 및 클릭
<div class="accordionContainer">
<div class="accordion">
<h3>Click This</h3>
<div class="accordionContent" style="display:none">
</div>
</div>
<div class="accordion">
<h3>Click This</h3>
<div class="accordionContent" style="display:none">
</div>
</div>
</div>
그때 accordionContent
에있는 링크를 엽니 다 첫 번째 H3를 선택하고 내 파이썬을 가지고있다.
WebDriverWait(ff, 10).until(lambda driver : driver.find_element_by_xpath("id('main_content')/div[3]/div/div/div[1]/h3[1]")).click()
WebDriverWait(ff, 10).until(lambda driver : driver.find_element_by_xpath("id('main_content')/div[3]/div/div/div[1]/div/p/a")).click()
는 나는이 &가 작동 볼 실행했다. 그러나 대부분의 경우 실패합니다. 첫 번째 DIV은 (는) 내용을 표시하기 위해 회전에 (나는 작은 화살표를 볼 수 있습니다 클릭하지만 즉시 초기 상태로 되돌아으로 두 번 클릭 얻을 것으로 보인다 나는 오류 얻을됩니다;
이상하게[exec] selenium.common.exceptions.ElementNotVisibleException: Message: u'Element is not currently visible and so may not be interacted with'
때 할 수있는 생각을 볼 수는() 같은 클릭을 호출하는 경우 작동 두 번째 라인 열려 있지 클릭했지만한다.
그 두 번째 XPath는이 accordionContent
이 display: block
?
시간 초과가 발생하지만 감사합니다. 매개 변수를 '및'사용할 수 있다는 것을 알고 있습니다. div에 두 번 클릭하여 (') 호출하여 일관되게 열어야합니다. 나는 그것이 작동하는 방식으로 살 수 있지만 div가 열리기 위해 두 번 실행해야한다는 이상한 점이 있습니다 - 그 이유는 무엇일까요? –