먼저 파이썬 생성기에 익숙해 지십시오. 파이썬 생성기에서 매우 강력한 도구입니다. Thomas Wouters의 위대한 설명은 다른 질문을 읽어 보면 알 수 있습니다. What can you use Python generator functions for?
일단 읽고 나면 발전기를 통해 느리게 표현식을 평가할 수 있습니다.
위의 코드에이 정보를 연결하면 생성 한 생성기 표현식을 반복 할 것으로 예상되므로 a.click()
이 실제로 실행되지 않습니다. 따라서 click()
메서드를 실제로 호출하려면 z.next()
을 실행해야합니다.
def click_link_partial(div_id, partial):
linkdiv = driver.find_element_by_id(div_id)
for a in linkdiv.find_elements_by_tag_name('a'):
if a.text.startswith(partial):
a.click()
break # stop iterating over the partially matched elements.
을 그러나 당신이 원하는 경우 : 당신이 z.next()
을 발행하려면, 당신은 단지 첫 번째 부분적으로 일치하는 링크를 클릭합니다 가정하지 않을 경우 다음과 같이
, 당신은 위의 코드를 다시 작성합니다 부분적으로 연결된 모든 요소를 클릭하려면 위에 나온 코드에서 z.next()
을 제거하고 외부 함수/메서드에서 사용되는 생성자 식을 반환해야합니다. 다음은 예입니다.
def click_link_partial(div_id, partial):
linkdiv = driver.find_element_by_id(div_id)
return (a for a in linkdiv.find_elements_by_tag_name('a')
if a.text.startswith(partial))
for matched_clickable_anchor in click_link_partial('#some-div-id', 'spam'):
matched_clickable_anchor.click() # do click
# do something else.
희망이 있습니다.
좋은 답변입니다. 감사! –