Selenium выбирает элемент по части имени класса или по другому атрибуту - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь выбрать несколько элементов на странице сайта с помощью Selenium в Python, которая имеет следующую структуру:

<div class="PodiaMovers js_resultTile" data-listing-number="108376450">
<div class="PodiaAgave js_resultTile" data-listing-number="108342737">
<div class="PodiaButler js_resultTile" data-listing-number="108362396">
etc..

Здесь PodiaMovers - это случайно сгенерированная строка, которая изменения для каждого элемента. Поэтому я думаю, что я мог бы искать либо часть имени класса ("js_resultTile"), либо я мог бы искать атрибут data-list-number , но я не знаю, как это сделать что с Селеном.

Не могли бы вы мне помочь?

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Если вы хотите использовать data-listing-number, вы можете попробовать следующий xpath.

//div[@data-listing-number='108376450']

Строка кода будет выглядеть следующим образом.

ele = driver.find_element_by_xpath("//div[@data-listing-number='108376450']")
# now you can perform your operation on the ele
ele.click()

Если вы хотите используйте js_resultTile, затем используйте следующий код.

ele = driver.find_element_by_xpath("//div[contains(@class,'js_resultTile')]")
# now you can perform your operation on the ele
ele.click()

Чтобы получить все элементы, которые содержат js_resultTile, используйте ниже.

eles = driver.find_elements_by_xpath("//div[contains(@class,'js_resultTile')]")
0 голосов
/ 12 февраля 2020

Вот пример кода для вас; python как язык сценариев

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

# initializing chrome driver

driver = webdriver.Chrome("D:\D_Drive\driver\chromedriver") 
           //should be directory path of chrome webdriver


# accessing yahoo home page for example yahoo

driver.get("http://www.yahoo.com")

# print page titile on console

print(driver.title)

try:

# locate the element or timeout

searchResult_Container = WebDriverWait(driver, 10).until(

    EC.presence_of_element_located((By.CLASS_NAME, "js_resultTile"))
)

# --- Now the variable "searchResult_Container" will have the element 
#--- you can perform action using this "searchResult_Container"

finally:

# close web browser window

driver.quit()

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...