#java #html #selenium #xpath
#java #HTML #selenium #xpath
Вопрос:
У меня есть два divs. Требование заключается в том, что мне нужно нажать кнопку «Выбрать стили». Мне нужно найти xpath первого div и второго div, проверив текст кнопки «Выбрать стили», а затем мне нужно нажать на нее. Итак, как найти xpath для divs и щелкнуть по нему.
<div>
<div class="product-wrapper multi-styles">
<div class="product">
<div class="product-image-container">
<div class="product-label">Women's</div>
</div>
<div class="product-name">Women's</div>
<button type="button" class="button button--primary">Select Styles</button>
</div>
</div>
<div class="product-wrapper multi-styles">
<div class="product">
<div class="product-image-container">
<div class="product-label">Men's</div>
</div>
<div class="product-name">Men's</div>
<button type="button" class="button button--primary">Select Styles</button>
</div>
</div>
</div>
Ответ №1:
Чтобы нажать на две соответствующие кнопки (женские / мужские), используйте следующий XPath :
//div[@class="product-name"][.="Women's"]/following-sibling::button
//div[@class="product-name"][.="Men's"]/following-sibling::button
Синтаксис Selenium (с Python) :
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//div[@class="product-name"][.="Women's"]/following-sibling::button'))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//div[@class="product-name"][.="Men's"]/following-sibling::button'))).click()
Импортирует :
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC