Не могу найти способ щелкнуть ссылку href с помощью selenium (Python 3.7)

#python #python-3.x #selenium

#python #python-3.x #селен

Вопрос:

Изображение элемента inspect

 from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

PATH = "C:Program Files (x86)chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get('https://website.com/')
driver.maximize_window()
search = driver.find_element_by_id('UserName')
search.send_keys('UserName')
search = driver.find_element_by_id('Password')
search.send_keys('Password')
search.send_keys(Keys.RETURN)
try:
    element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.LINK_TEXT, "Admin"))
    )
    element.click
    link = driver.find_element_by_link_text('Admin')
    link.click()
    
    element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.LINK_TEXT, "Reports"))
    )
    element.click
    link = driver.find_element_by_link_text('Reports')
    link.click()
    
except:
    driver.quit()
    
driver.implicitly_wait(5)
sales_link = driver.find_element_by_link_text('Sales').click()
  

Ниже приведена информация с веб-сайта, я хочу нажать на продажи, но, похоже, не могу этого сделать, поэтому буду признателен за любую помощь

a _ngcontent-hyf-c12=»» routerlink=»»./SalesReport» routerlinkactive=»active» href=»/Reports/ SalesReport»Продажи / a

Изображение ошибки

Это то, что появляется, если я пытаюсь щелкнуть по ней с помощью изображения с ошибкой XPATH

Комментарии:

1. Можете ли вы поделиться ссылкой на веб-сайт? таким образом, мы можем проверить

2. лучше покажите реальный URL для этой страницы — и тогда мы сможем увидеть, в чем проблема.

3. если элемент находится внутри <frame> , то ему может понадобиться switch_to.frame()

4. сначала вы могли бы удалить try/except , чтобы увидеть полное сообщение об ошибке — это помогает понять проблему.

5. Извините, не могу показать полный URL, так как это для работы.

Ответ №1:

На вашем html-изображении я вижу пробел после продажи.
Посмотрите внимательно: href="/Reports/SalesReport">Sales </a .

Так find_element_by_link_text('Sales') не сработает.
Вы можете изменить ее на find_element_by_link_text('Sales ') .

Однако это будет лучше:

 driver.find_elements_by_xpath("//a[contains(text(), 'Sales')]")
  

Комментарии:

1. Если ответ полезен, пожалуйста, щелкните восходящий треугольник перед этим ответом : ) в противном случае дайте мне знать, я сделаю все возможное, чтобы изменить его снова.