Python에서 Selenium WebDriver로 텍스트를 얻는 방법
셀레늄 웹드라이버를 사용하여 텍스트를 얻으려고 하는데 여기 제 코드가 있습니다.저의 경우 웹 페이지를 다시 시작할 때마다 ID가 변경되기 때문에 XPath를 사용하고 싶지 않습니다.
내 코드:
text = driver.find_element_by_class_name("current-stage").getText("my text")
HTML:
<span class="current-text" id="yui_3_7_0_4_1389185744113_384">my text</span>
이걸 어떻게 고칠 수 있을까요?
당신은 단지 원합니다..text.
그런 다음 데이터를 얻은 후에 확인할 수 있습니다. 데이터가 있어야 한다고 생각을 전달하려고 하지 마십시오.
파이썬
element.text
자바
element.getText()
C#
element.Text
루비
element.text
텍스트를 인쇄하려면 다음 로케이터 전략 중 하나를 사용할 수 있습니다.
class_name 사용 및
get_attribute("textContent"):print(driver.find_element(By.CLASS_NAME, "current-stage").get_attribute("textContent"))css_selector 사용 및
get_attribute("innerHTML"):print(driver.find_element(By.CSS_SELECTOR, "span.current-stage").get_attribute("innerHTML"))xpath 및 텍스트 속성 사용:
print(driver.find_element(By.XPATH, "//span[@class='current-stage']").text)
이상적으로 당신은 웹드라이버를 유도해야 합니다.visibility_of_element_located()다음 로케이터 전략 중 하나를 사용할 수 있습니다.
CLASS_NAME 사용 및
get_attribute("textContent"):print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CLASS_NAME, "current-stage"))).get_attribute("textContent"))CSS_SELECTOR 및 텍스트 속성 사용:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.current-stage"))).text)XPATH 사용 및
get_attribute("innerHTML"):print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[@class='current-stage']"))).get_attribute("innerHTML"))참고: 다음 가져오기를 추가해야 합니다.
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
Selenium - Python을 사용하여 웹 요소의 텍스트를 검색하는 방법에서 관련 토론을 찾을 수 있습니다.
레퍼런스
유용한 설명서 링크:
get_attribute()방법Gets the given attribute or property of the element.text속성 반환The text of the element.- 텍스트와 내부의 차이셀레늄을 사용한 HTML
답은 다음과 같습니다.
driver.find_element_by_class_name("ctsymbol").text
사용할 수 있는 항목:
element = driver.find_element_by_class_name("class_name").text
이렇게 하면 요소 내의 텍스트가 반환되고 이후에 확인할 수 있습니다.
이것이 정답입니다.효과가 있었어요.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome("E:\\Python\\selenium\\webdriver\\chromedriver.exe")
driver.get("https://www.tatacliq.com/global-desi-navy-embroidered-kurta/p-mp000000000876745")
driver.set_page_load_timeout(45)
driver.maximize_window()
driver.implicitly_wait(2)
driver.get_screenshot_as_file("E:\\Python\\Tatacliq.png")
print ("Executed Successfully")
driver.find_element_by_xpath("//div[@class='pdp-promo-title pdp-title']").click()
SpecialPrice = driver.find_element_by_xpath("//div[@class='pdp-promo-title pdp-title']").text
print(SpecialPrice)
A는 셀레늄 4 업데이트 후 이 스레드를 찾는 모든 사람을 위해 안내합니다.기사님.find_discovery_by_*가 더 이상 사용되지 않으며 이를 사용하면 "사용되지 않음 경고"가 표시됩니다.교체 방법은 드라이버입니다.find_element(By.X,name") 셀레늄 4 정보를 찾아보세요.
사용자 지정 클래스에서 무언가를 잡을 수 없거나 ID를 변경할 때 매우 유용하다는 것을 알게 되었습니다.
driver.find_element_by_xpath("//*[contains(text(), 'Show Next Date Available')]").click()
driver.find_element_by_xpath("//*[contains(text(), 'Show Next Date Available')]").text
driver.find_element_by_xpath("//*[contains(text(), 'Available')]").text
driver.find_element_by_xpath("//*[contains(text(), 'Avail')]").text
요소에서 텍스트 가져오기:
url=driv.find_element(By.whatDoYouWant, "ClassNameOrwhatDoYouWant").text
print(url)
ex:
url = web.find_element(By.TAG_NAME, "a").text
print(url)
요소에서 텍스트 가져오기:
ex:
for i in range(6):
var = web.find_elements(By.TAG_NAME, "input")[i].text
print(var)
언급URL : https://stackoverflow.com/questions/20996392/how-to-get-text-with-selenium-webdriver-in-python
'codememo' 카테고리의 다른 글
| DataFrame의 문자열이지만 dtype은 개체입니다. (0) | 2023.07.17 |
|---|---|
| ((void*)0)이 null 포인터 상수입니까? (0) | 2023.07.17 |
| v-data-table Vuetify Vuex Axios API에서 API를 추가하는 방법 (0) | 2023.07.17 |
| EXTRACT() Hour(24시간 형식) (0) | 2023.07.17 |
| numpy.array() 데이터를 올바르게 저장하고 로드하는 방법은 무엇입니까? (0) | 2023.07.17 |