Hướng dẫn find element in table selenium python - tìm phần tử trong bảng selen python

tag. Once we get hold of all the values in that particular column, we shall use the text method to get all the cell data.

l = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr [1]/th")

Có vẻ như bạn có thể tìm kiếm thông qua liên kết phần tử neo (HREF-thuộc tính), vì tôi đoán điều này sẽ không thay đổi.

qua xpath:

yourText = table_element.find_element_by_xpath(.//a[@href='/blahsomelink']).text

CẬP NHẬT

OP đã đề cập rằng liên kết của anh ấy cũng đang thay đổi (với mỗi cuộc gọi?), Điều đó có nghĩa là cách tiếp cận đầu tiên không dành cho anh ấy.

Nếu bạn muốn văn bản của phần tử hàng đầu tiên, bạn có thể thử điều này:

yourText = table_element.find_element_by_xpath(.//tr[1]//a[@class='cl']).text

Nếu bạn biết ví dụ rằng phần tử liên kết luôn nằm trong phần tử dữ liệu thứ hai của hàng thứ nhất và chỉ có một phần tử liên kết, thì bạn có thể làm điều này:

yourText = table_element.find_element_by_xpath(.//tr[1]/td[2]//a).text

Trừ khi bạn cung cấp các yêu cầu chi tiết hơn về những gì bạn đang thực sự tìm kiếm, điều này sẽ phải đủ cho đến nay ...

Một bản cập nhật khác

OP đã cung cấp thêm thông tin về yêu cầu của anh ấy:

Tôi đang cố gắng để có được văn bản trong mỗi hàng.

Cho rằng chỉ có một phần tử neo với lớp CL trong mỗi phần tử tr bạn có thể làm như sau:

elements = table_element.find_elements_by_xpath(.//tr//a[@class='cl'])
for element in elements:
    row_text = element.text

Bây giờ bạn có thể làm bất cứ điều gì bạn cần với tất cả các văn bản này ...

# Nhận Phương thức để khởi chạy URLHow To Handle Web Tables in Selenium Python. 

# Để xác định các hàng bảng

r = driver.find_elements_by_xpath ("// bảng [@class = 'sptable']/tbody/tr"))

# Để xác định các cột bảng

Hướng dẫn find element in table selenium python - tìm phần tử trong bảng selen python

c = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr [3]/td")

# Để tìm kiếm văn bản cần thiết của chúng tôifind_elements_by_xpath () method. Since this method returns a list, we can obtain the row count with the help of len method.

m = driver.find_elements_by_xpath ("// td [text () = 'eid001']")

# Nhập WebDriver

từ Selenium Nhập WebDriverselenium import webdriver

# Nhập lớp phím

từ selenium.webdriver.Common Chìa khóa nhập khẩuselenium.webdriver.common import keys

Driver = WebDriver.chrom (Executable_path = "C: \\ cromedriver.exe")=webdriver.Chrome (executable_path="C:\\chromedriver.exe")

# Nhận Phương thức để khởi chạy URL

driver.get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/").get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/")

# Để xác định các hàng bảng

l = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr"))= driver.find_elements_by_xpath("//*[@class= 'spTable']/tbody/tr")

# Để có được phương thức số lượng LEN số hàng

print(len(l))(len(l))

# Để đóng trình duyệt

driver.quit().quit()

Để tính tổng số cột, trước tiên chúng ta sẽ tạo một XPath tùy chỉnh để biểu diễn tất cả các hàng trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng với sự trợ giúp của phương thức LEN. Chúng tôi phải sửa một số hàng trước khi tính toán số lượng cột. Nếu chúng ta đặt hàng 1, chúng ta phải sử dụng cho các cột. Đối với bất kỳ hàng nào khác ngoại trừ 1, chúng tôi phải sử dụng.find_elements_by_xpath () method. Since this method returns a list, we can obtain the row count with the help of len method. We have to fix a row number before calculating the column count with

. If we set row 1, we have to use for the columns. For any other row except 1, we have to use .

Thực hiện mã để tính toán số cột trong một bảng.

# Nhập WebDriver

từ Selenium Nhập WebDriverselenium import webdriver

# Nhập lớp phím

từ selenium.webdriver.Common Chìa khóa nhập khẩuselenium.webdriver.common import keys

Driver = WebDriver.chrom (Executable_path = "C: \\ cromedriver.exe")=webdriver.Chrome (executable_path="C:\\chromedriver.exe")

# Nhận Phương thức để khởi chạy URL

driver.get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/").get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/")

# Để xác định các cột trong hàng 3

l = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr [3]/td")=driver.find_elements_by_xpath("//*[@class= 'spTable']/tbody/tr[3]/td")

# Để nhận phương thức LEN số cột

print(len(l))(len(l))

# Để đóng trình duyệt

driver.quit().quit()

Để tính tổng số cột, trước tiên chúng ta sẽ tạo một XPath tùy chỉnh để biểu diễn tất cả các hàng trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng với sự trợ giúp của phương thức LEN. Chúng tôi phải sửa một số hàng trước khi tính toán số lượng cột. Nếu chúng ta đặt hàng 1, chúng ta phải sử dụng cho các cột. Đối với bất kỳ hàng nào khác ngoại trừ 1, chúng tôi phải sử dụng.find_elements_by_xpath () method. Since this method returns a list, we can obtain the row count with the help of len method. We have to iterate through row number 1, then move to

. Once we get hold of the first row, we shall use the text method to get all the table headers.

Thực hiện mã để tính toán số cột trong một bảng.

# Nhập WebDriver

từ Selenium Nhập WebDriverselenium import webdriver

# Nhập lớp phím

từ selenium.webdriver.Common Chìa khóa nhập khẩuselenium.webdriver.common import keys

Driver = WebDriver.chrom (Executable_path = "C: \\ cromedriver.exe")=webdriver.Chrome (executable_path="C:\\chromedriver.exe")

# Nhận Phương thức để khởi chạy URL

driver.get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/").get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/")

# Để xác định các cột trong hàng 3

l = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr [3]/td")=driver.find_elements_by_xpath ("//*[@class= 'spTable']/tbody/tr[1]/th")

# Để nhận phương thức LEN số cột

foriinl:iinl:

Để có được các tiêu đề trong một bảng, trước tiên chúng tôi sẽ tạo một XPath tùy chỉnh để biểu diễn tất cả các hàng trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng với sự trợ giúp của phương thức LEN. Chúng ta phải lặp lại thông qua hàng số 1, sau đó di chuyển đến. Khi chúng tôi giữ hàng đầu tiên, chúng tôi sẽ sử dụng phương thức văn bản để lấy tất cả các tiêu đề bảng.

print(i.text)(i.text)

Thực hiện mã để có được các tiêu đề bảng.

driver.close().close ()

# Để xác định các tiêu đề cột bảng theo hàng 1find_elements_by_xpath () method. Since this method returns a list, we can obtain the row count with the help of len method. We have to iterate through the columns of a particular row number [greater than 1], having

tag. Once we get hold of all the values in that particular row, we shall use the text method to get all the cell data.

l = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr [1]/th")

# Nhập WebDriver

từ Selenium Nhập WebDriverselenium import webdriver

# Nhập lớp phím

từ selenium.webdriver.Common Chìa khóa nhập khẩuselenium.webdriver.common import keys

Driver = WebDriver.chrom (Executable_path = "C: \\ cromedriver.exe")=webdriver.Chrome (executable_path="C:\\chromedriver.exe")

# Nhận Phương thức để khởi chạy URL

driver.get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/").get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/")

# Để xác định các cột trong hàng 3

l = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr [3]/td")=driver.find_elements_by_xpath ("//*[@class= 'spTable']/tbody/tr[3]/td")

# Để nhận phương thức LEN số cột

foriinl:iinl:

Để có được các tiêu đề trong một bảng, trước tiên chúng tôi sẽ tạo một XPath tùy chỉnh để biểu diễn tất cả các hàng trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng với sự trợ giúp của phương thức LEN. Chúng ta phải lặp lại thông qua hàng số 1, sau đó di chuyển đến. Khi chúng tôi giữ hàng đầu tiên, chúng tôi sẽ sử dụng phương thức văn bản để lấy tất cả các tiêu đề bảng.

print(i.text)(i.text)

Thực hiện mã để có được các tiêu đề bảng.

driver.close().close()

# Để xác định các tiêu đề cột bảng theo hàng 1find_elements_by_xpath () method. Since this method returns a list, we can obtain the row count with the help of len method. We have to iterate through the rows of a particular column number, having a

# Nhập WebDriver

từ Selenium Nhập WebDriverselenium import webdriver

# Nhập lớp phím

từ selenium.webdriver.Common Chìa khóa nhập khẩuselenium.webdriver.common import keys

Driver = WebDriver.chrom (Executable_path = "C: \\ cromedriver.exe")=webdriver.Chrome (executable_path="C:\\chromedriver.exe")

# Nhận Phương thức để khởi chạy URL

driver.get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/").get("https://www.softwaretestingmaterial.com/sample-webpage-    to-automate/")

# Để xác định các cột trong hàng 3

l = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr [3]/td")=driver.find_elements_by_xpath ("//*[@class= 'spTable']/tbody/tr/td[3]")

# Để nhận phương thức LEN số cột

foriinl:iinl:

Để có được các tiêu đề trong một bảng, trước tiên chúng tôi sẽ tạo một XPath tùy chỉnh để biểu diễn tất cả các hàng trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng với sự trợ giúp của phương thức LEN. Chúng ta phải lặp lại thông qua hàng số 1, sau đó di chuyển đến. Khi chúng tôi giữ hàng đầu tiên, chúng tôi sẽ sử dụng phương thức văn bản để lấy tất cả các tiêu đề bảng.

print(i.text)(i.text)

Thực hiện mã để có được các tiêu đề bảng.

driver.close().close()

Để có được tất cả các giá trị ô của bảng, trước tiên chúng ta sẽ tạo một XPath tùy chỉnh để biểu thị tất cả các hàng và cột trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng và cột với sự trợ giúp của phương thức LEN. Chúng ta phải lặp qua mỗi hàng và mỗi cột của một bảng cụ thể sau đó tìm nạp dữ liệu ô bằng phương thức văn bản.find_elements_by_xpath () method. Since this method returns a list, we can obtain the row and column count with the help of len method. We have to iterate through each row and each column of a particular table then fetch the cell data with the text method.

Thực hiện mã để có được tất cả các dữ liệu ô trong một bảng.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

# Nhập WebDriver

từ Selenium Nhập WebDriverselenium import webdriver

# Nhập lớp phím

từ selenium.webdriver.Common Chìa khóa nhập khẩuselenium.webdriver.common import keys

Driver = WebDriver.chrom (Executable_path = "C: \\ cromedriver.exe")=webdriver.Chrome (executable_path="C:\\chromedriver.exe")

# Nhận Phương thức để khởi chạy URL

u="https://www.softwaretestingmaterial.com/sample-webpage-to-automate/"="https://www.softwaretestingmaterial.com/sample-webpage-to-automate/"

driver.get(u).get(u)

# Để xác định các hàng bảng

r = driver.find_elements_by_xpath ("// bảng [@class = 'sptable']/tbody/tr"))= driver.find_elements_by_xpath("//table[@class= 'spTable']/tbody/tr")

# Để xác định các cột bảng

c = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr [3]/td")=driver.find_elements_by_xpath("//*[@class= 'spTable']/tbody/tr[3]/td")

# Để nhận được số lượng hàng với phương thức LEN

rc=len(r) =len(r)

# Để nhận đếm cột bằng phương pháp LEN

cc=len(c)=len(c)

# để đi qua các hàng bảng không bao gồm các tiêu đề

foriinrange(2,rc+1):iinrange (2,rc+1):

# để đi qua cột bảng

forjinrange(1,cc+1):jinrange(1,cc+1):

# Để có được tất cả dữ liệu ô bằng phương thức văn bản

d=driver.find_element_by_xpath("//tr["+str(i)+"]/td["+str(j)+"]").text=driver.find_element_by_xpath("//tr["+str(i)+"]/td["+str(j)+"]").text

print(d)(d)

#để đóng trình duyệt

driver.close().close()

Để xác minh xem một văn bản cụ thể có tồn tại trong bảng hay không, trước tiên chúng ta sẽ tạo một XPath tùy chỉnh để biểu thị tất cả các hàng và cột trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng và cột với sự trợ giúp của phương thức LEN.find_elements_by_xpath () method. Since this method returns a list, we can obtain the row and column count with the help of len method.

Chúng ta phải lặp qua mỗi hàng và mỗi cột của một bảng cụ thể sau đó tìm nạp dữ liệu ô bằng phương thức văn bản. Khi dữ liệu ô được tìm nạp, chúng tôi sẽ xác minh xem nó có khớp với văn bản mà chúng tôi đang tìm kiếm với chức năng trợ giúp của văn bản () trong XPath hay không.text method. Once the cell data is fetched, we shall verify if it matches with the text we are looking for with the help of text () function in xpath.

Thực hiện mã để tìm kiếm một văn bản cụ thể trong một bảng.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

# Nhập WebDriver

từ Selenium Nhập WebDriverselenium import webdriver

# Nhập lớp phím

từ selenium.webdriver.Common Chìa khóa nhập khẩuselenium.webdriver.common import keys

Driver = WebDriver.chrom (Executable_path = "C: \\ cromedriver.exe")=webdriver.Chrome (executable_path="C:\\chromedriver.exe")

# Nhận Phương thức để khởi chạy URL

u="https://www.softwaretestingmaterial.com/sample-webpage-to-automate/"="https://www.softwaretestingmaterial.com/sample-webpage-to-automate/"

driver.get(u).get(u)

# Để xác định các hàng bảng

r = driver.find_elements_by_xpath ("// bảng [@class = 'sptable']/tbody/tr"))= driver.find_elements_by_xpath("//table[@class= 'spTable']/tbody/tr")

# Để xác định các cột bảng

c = driver.find_elements_by_xpath ("//*[@class = 'sptable']/tbody/tr [3]/td")=driver.find_elements_by_xpath("//*[@class= 'spTable']/tbody/tr[3]/td")

# Để nhận được số lượng hàng với phương thức LEN

rc=len(r) =len(r)

# Để nhận đếm cột bằng phương pháp LEN

cc=len(c)=len(c)

# để đi qua các hàng bảng không bao gồm các tiêu đề

foriinrange(2,rc+1):iinrange (2,rc+1):

# để đi qua cột bảng

forjinrange(1,cc+1):jinrange(1,cc+1):

# Để có được tất cả dữ liệu ô bằng phương thức văn bản

d=driver.find_element_by_xpath("//tr["+str(i)+"]/td["+str(j)+"]").text=driver.find_element_by_xpath("//tr["+str(i)+"]/td["+str(j)+"]").text

#để đóng trình duyệt

Để xác minh xem một văn bản cụ thể có tồn tại trong bảng hay không, trước tiên chúng ta sẽ tạo một XPath tùy chỉnh để biểu thị tất cả các hàng và cột trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng và cột với sự trợ giúp của phương thức LEN. =driver.find_elements_by_xpath("//td[text() = 'EID001']")

Chúng ta phải lặp qua mỗi hàng và mỗi cột của một bảng cụ thể sau đó tìm nạp dữ liệu ô bằng phương thức văn bản. Khi dữ liệu ô được tìm nạp, chúng tôi sẽ xác minh xem nó có khớp với văn bản mà chúng tôi đang tìm kiếm với chức năng trợ giúp của văn bản () trong XPath hay không.

s=len(m)=len(m)

Thực hiện mã để tìm kiếm một văn bản cụ thể trong một bảng.

If(s>0):(s> 0):

# Để tìm kiếm văn bản cần thiết của chúng tôi("Text found")

#để đóng trình duyệt

driver.close().close()

Để xác minh xem một văn bản cụ thể có tồn tại trong bảng hay không, trước tiên chúng ta sẽ tạo một XPath tùy chỉnh để biểu thị tất cả các hàng và cột trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng và cột với sự trợ giúp của phương thức LEN.find_element_by_xpath () method

Chúng ta phải lặp qua mỗi hàng và mỗi cột của một bảng cụ thể sau đó tìm nạp dữ liệu ô bằng phương thức văn bản. Khi dữ liệu ô được tìm nạp, chúng tôi sẽ xác minh xem nó có khớp với văn bản mà chúng tôi đang tìm kiếm với chức năng trợ giúp của văn bản () trong XPath hay không.

# Nhập WebDriver

từ Selenium Nhập WebDriverselenium import webdriver

# Nhập lớp phím

từ selenium.webdriver.Common Chìa khóa nhập khẩuselenium.webdriver.common import keys

Driver = WebDriver.chrom (Executable_path = "C: \\ cromedriver.exe")=webdriver.Chrome (executable_path="C:\\chromedriver.exe")

# Nhận Phương thức để khởi chạy URL

u="https://www.softwaretestingmaterial.com/sample-webpage-to-automate/"="https://www.softwaretestingmaterial.com/sample-webpage-to-automate/"

driver.get(u).get(u)

# Để xác định các hàng bảng

r = driver.find_elements_by_xpath ("// bảng [@class = 'sptable']/tbody/tr"))= driver.find_element_by_xpath("//*[@class= 'spTable']/tbody/tr[3]/td[2]")

# Để xác định các cột bảng

print(c.text)(c.text)

#để đóng trình duyệt

driver.close().close()

Để xác minh xem một văn bản cụ thể có tồn tại trong bảng hay không, trước tiên chúng ta sẽ tạo một XPath tùy chỉnh để biểu thị tất cả các hàng và cột trong một bảng với sự trợ giúp của phương thức Find_elements_by_xpath (). Vì phương thức này trả về một danh sách, chúng ta có thể có được số lượng hàng và cột với sự trợ giúp của phương thức LEN.Handling cookies in Selenium Python

Chúng ta phải lặp qua mỗi hàng và mỗi cột của một bảng cụ thể sau đó tìm nạp dữ liệu ô bằng phương thức văn bản. Khi dữ liệu ô được tìm nạp, chúng tôi sẽ xác minh xem nó có khớp với văn bản mà chúng tôi đang tìm kiếm với chức năng trợ giúp của văn bản () trong XPath hay không.

  • Thực hiện mã để tìm kiếm một văn bản cụ thể trong một bảng.
  • # Để tìm kiếm văn bản cần thiết của chúng tôi
  • m = driver.find_elements_by_xpath ("// td [text () = 'eid001']")
  • # Để có được kích thước của danh sách bằng phương pháp LEN
  • # Kiểm tra xem kích thước danh sách lớn hơn 0

in ("văn bản tìm thấy")