12 Kiểm tra HTML xác định thuộc tính phần từ

Chuyên mục: Python
Cập nhật: 05/12/2024
12 Kiểm tra HTML xác định thuộc tính phần từ

1 số cách trong python để tương tác với các phần từ html trên trang:

from selenium import webdriver

#chrome driver
from selenium.webdriver.chrome.service import Service
#-- Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select

service_obj = Service("C:/Users/DELL/Desktop/chromedriver-win64/chromedriver.exe")
driver = webdriver.Chrome(service=service_obj)

driver.get("domain.com/dang-ky")

# ID, xpath, CSSselector, Classname, name, linktext

driver.find_element(By.NAME, "email").send_keys("hitro@gmail.com")
driver.find_element(By.ID, "exampleInputPassword1").send_keys("123456")
driver.find_element(By.ID, "exampleCheck1").click()

# Xpath -  //tagname[@attribute='value'] -> //input[@type='submit']
# CSS -  tagname[attribute='value'] -> //input[@type='submit'],  #id, .classname
driver.find_element(By.CSS_SELECTOR, "input[name='name']").send_keys("hiendepzai")
driver.find_element(By.CSS_SELECTOR, "#inlineRadio1").click()

#Static Dropdown
dropdown = Select(driver.find_element(By.ID,"exampleFormControlSelect1"))# Chọn phần tử select trên trang.
dropdown.select_by_visible_text("Female") # Chọn tùy chọn trong dropdown có văn bản hiển thị là "Female".
dropdown.select_by_index(0) # Chọn tùy chọn đầu tiên trong dropdown (bắt đầu từ chỉ số 0).

#Tìm phần tử bằng XPath. Đây là cách linh hoạt nhất để tìm phần tử theo cấu trúc của tài liệu HTML.
driver.find_element(By.XPATH, "//input[@type='submit']").click()
message = driver.find_element(By.CLASS_NAME, "alert-success").text
print(message)
assert "Success" in message
driver.find_element(By.XPATH,"(//input[@type='text'])[3]").send_keys("helloagain")
driver.find_element(By.XPATH,"(//input[@type='text'])[3]").clear()

Giải thích phần tử [3]:

<input type="text" name="field1">
<input type="text" name="field2">
<input type="text" name="field3">
<input type="text" name="field4">

Trong trường hợp này, "(//input[@type='text'])[3]" sẽ chỉ vào phần tử <input name="field3">, vì nó là phần tử thứ 3 trong các phần tử inputtype="text".Vì: chỉ mục trong XPath bắt đầu từ 1, chứ không phải từ 0 như trong một số ngôn ngữ lập trình khác.