Python, селен find_element_by_link_text не работает - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь почистить сайт.Где я должен нажать на ссылку.для этой цели я использую библиотеку селена с хромированным диском.

from selenium import webdriver

url = 'https://sjobs.brassring.com/TGnewUI/Search/Home/Home?partnerid=25222&siteid=5011&noback=1&fromSM=true#Applications'
browser = webdriver.Chrome()
browser.get(url)
time.sleep(3)

link = browser.find_element_by_link_text("Don't have an account yet?")
link.click()

Но это не работает.Есть идеи, почему это не работает?Есть ли обходной путь?

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете сделать это несколькими способами.Вот один из таких.Я использовал команду driver.execute_script() для принудительного нажатия.Вы не должны идти на жестко запрограммированные задержки, поскольку они очень противоречивы.

Модифицированный скрипт:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC

url = 'https://sjobs.brassring.com/TGnewUI/Search/Home/Home?partnerid=25222&siteid=5011&noback=1&fromSM=true#Applications'

driver = webdriver.Chrome()
driver.get(url)

item = wait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a[ng-click='newAccntScreen()']")))
driver.execute_script("arguments[0].click();",item)
...