#python-3.x #selenium
Вопрос:
<a href="#" onclick="showZone("gaoland.net")">gaoland.net</a>
Я хочу нажать на ссылку из onclick.
Я использую python селен. Спасибо
Я уже проверил все это, но безуспешно
browser.find_element_by_xpath('//href[text()="gaoland.net"]').click() browser.find_element_by_xpath('//a[@href="#"]').click() browser.find_element_by_xpath('//a[contains(@href,"#")]').click() browser.find_element_by_xpath("//a[contains(@onclick, "'showZone("gaoland.net")'")]").click() browser.find_element_by_partial_link_text("gaoland.net" Keys.RETURN) browser.find_element_by_xpath("//a[con**strong text**tains(@onclick, '#')]").click() browser.find_element_by_xpath('//a[contains(@href,"showZone("gaoland.net")")]').click() browser.find_element_by_partial_link_text('showZone("gaoland.net")').click() browser.find_element_by_xpath('//a[contains(@onclick="showZone("gaoland.net")]').click()
Ответ №1:
Предпочтительным способом является LINK_TEXT
:
browser.find_element_by_link_text('gaoland.net').click()
или с помощью WebDriverWait :
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "gaoland.net"))).click()
Импорт :
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
если это не работает, пожалуйста, попробуйте xpath или css селектор :
- xpath :
//a[contains(@onclick,'showZone') and text()='gaoland.net']
или
//a[contains(@onclick,'showZone')]
css был бы :
a[onclick^='showZone']
Вы можете использовать либо использовать driver.find_element_by_xpath('')
, либо
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(@onclick,'showZone')]"))).click()
PS : Пожалуйста, проверьте в dev tools
(Google chrome), есть ли у нас уникальная запись HTML DOM
или нет.
Шаги для проверки:
Press F12 in Chrome
-> перейдите в > element
раздел -> сделайте > CTRL F
-> затем вставьте > xpath
и посмотрите, element
выделяется ли ваш желаемый 1/1
соответствующий узел.
Комментарии:
1. Большое спасибо за работу WebDriverWait(браузер, 20).до тех пор, пока(EC.element_to_be_clickable((По.XPATH, «//a[содержит(@onclick,’showZone’)]»))).нажмите()