не может нажать на элемент в селене - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь нажать на элемент, содержащий номер телефона на этом сайте, ссылка внизу.Это элемент, который говорит "Toon Nummer"element locationНайти элемент достаточно просто:

tel = driver.find_element_by_xpath("//button[contains(@title, 'telefoon')]")

Но если я хочу щелкнуть по нему, я знаю два способа:

tel.click()

Это просто возвращает ElementNotVisibleException.И другой способ:

driver.execute_script("arguments[0].click();", tel)

Это просто ничего не делает, без ошибок, но и без щелчка, потому что информация не отображается.Что еще я могу сделать, чтобы успешно нажать на это? ссылка на сайт

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Чтобы щелкнуть по элементу с текстом Toon nummer , вам нужно настроить WebDriverWait , чтобы элемент был кликабельным , и вы можете использовать следующее решение:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 
# other lines of code
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//aside[@class='l-side-right']//button[@class='mp-Button mp-Button--secondary' and @title='Toon telefoonnummer']//span[contains(.,'Toon')]"))).click()
0 голосов
/ 12 июня 2018

попробуйте это:

phone_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH, "//div[@id='vip-seller']/following-sibling::section/child::button")))  
phone_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 

Написанный вами Xpath содержит два веб-элемента.Надеюсь, это поможет.

...