콘솔워크

파이썬 셀레니움 특정 글자 포함된 태그 가져오기 기록 본문

프로그래밍/python

파이썬 셀레니움 특정 글자 포함된 태그 가져오기 기록

콘솔워크 2022. 2. 19. 09:29
반응형
# xpath 규칙 참조
    # / : 절대경로를 나타냄
    # // : 문서내에서 검색
    # //@href : href 속성이 있는 모든 태그 선택
    # //a[@href='http://google.com'] : a 태그의 href 속성에 http://google.com 속성값을 가진 모든 태그 선택
    # (//a)[3] : 문서의 세 번째 링크 선택
    # (//table)[last()] : 문서의 마지막 테이블 선택
    # (//a)[position() < 3] : 문서의 처음 두 링크 선택
    # //table/tr/* 모든 테이블에서 모든 자식 tr 태그 선택
    # //div[@*] 속성이 하나라도 있는 div 태그 선택
 
 
#  아래 방법으로 크롬에서 xpath 가져오기 연습 가능
 function getElementByXpath(path) {
   return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}

console.log( getElementByXpath("//html[1]/body[1]/div[1]") );
 
def click_text(driver, text):
    driver.find_element_by_xpath(f"//*[text()='{text}']")

def click_tag_by_text(driver, tag, text):
    wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, f"//{tag}[text()='{text}']"))).click()

def click_tag_by_text_with_wait(driver, tag, text, wait_second):
    wait(driver, wait_second).until(EC.element_to_be_clickable((By.XPATH, f"//{tag}[text()='{text}']"))).click()

def type_into_tag_by_text(driver, tag, text, content):
    wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, f"//{tag}[text()='{text}']"))).send_keys(content)

def click_tag_by_contain_text(driver, tag, text):
    wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, f'//{tag}[contains(text(), "{text}")]'))).click()
반응형