'SelectorList' object has no attribute 'click'
означает, что метод click
не будет работать с элементом, возвращаемым вашим xpath.
Попробуйте это - в Python
element_to_click = self.driver.find_element_by_css_selector('a.external')
driver.execute_script("arguments[0].scrollIntoView(true);",element_to_click)
element_to_click.click()
или
element_to_click =
self.driver.find_element_by_xpath("//a[contains(@href,'http://www.amazon.com/dp/B01DBR53FU/?tag=097-20&ascsubtag=v7_3_3_3m7_2nhz_0_x01_-srt5-')]")
#assuming that the href doesn't change.
driver.execute_script("arguments[0].scrollIntoView(true);",element_to_click)
# scroll element into view
element_to_click.click()
или
Вы можете использовать linkText, как указано в другом ответе.
Редактировать 3: Попробуйте отправить JS-щелчок этому локатору
driver.execute_script("arguments[0].click();",element_to_click)
Редактировать4: См. Это редактирование тщательно.Нажать на любой подарочный товар на этой странице очень просто
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
chrome_path = 'your chromedriver path here'
driver = webdriver.Chrome(chrome_path)
driver.get("http://thisiswhyimbroke.com/gifts/gifts-for-men/")
time.sleep(5)
#clicks on the first gift article
first_article = driver.find_element_by_css_selector('#page-gifts > article:nth-child(1) > div.button > a')
first_article.click()
time.sleep(5)
Вся упомянутая подарочная статья генерируется repeater
, поскольку это англоязычная веб-страница.Все показанные подарки присутствуют внутри тега article
.
Если вы хотите нажать на вторую, третью или любую другую кнопку статьи, вам просто нужно изменить article:nth-child
, чтобы получить соответствующий дочерний элемент, и этот код будет работать.
Перед вамиНачните автоматизацию, пожалуйста, кратко прочитайте о том, как вы можете создавать, использовать локаторы, прежде чем углубляться в автоматизацию.