#python #regex #selenium
#python #регулярное выражение #селен
Вопрос:
<a id="ctl00_ctl00_ctl00_c_hdetail_lblPat2" href="javascript:popupPatient(218809, '0');">CHATARPAL, LALITA</a>
Я пытаюсь получить текст (218809) из outerHTML. ранее я делал то же самое с AHK, но теперь я изучаю Python, чтобы делать то же самое.
Вот мой код.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
import re
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
driver.get("https://brightree.net/F1/0375/MBSNI/Receipts/Invoices/Invoice_Invoice.aspx?InvoiceKey=3729668")
wait=WebDriverWait(driver,10)
wait.until(EC.element_to_be_clickable((By.XPATH,"//*[@id='ctl00_ctl00_ctl00_c_hdetail_lblSalesOrder2']")))
Target=driver.find_element_by_id("ctl00_ctl00_ctl00_c_hdetail_lblPat2")
Get_Value=Target.get_attribute("outerHTML")
print(Get_Value)
Ответ №1:
Get_Value=Target.get_attribute("href")
Get_Value=re.findall('d ', Get_Value)[0]
print(Get_Value)
используйте регулярное выражение d для поиска цифр, d указывает на одну или несколько цифр
Ответ №2:
# re is short for [r]egular [e]xpression
from re import match
# This is your example string from the question. The string contains both single
# and double quotes, so I used triple quotes to avoid needing to escape them.
string = """<a id="ctl00_ctl00_ctl00_c_hdetail_lblPat2" href="javascript:popupPatient(218809, '0');">CHATARPAL, LALITA</a>"""
# match any number of characters, then the method name, then capture the number.
pattern = r'.*?popupPatient((d )'
# Get the first capture group from the regex and print it
print(match(pattern, string).group(1))