#python #python-3.x #selenium
#python #python-3.x #селен
Вопрос:
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. Если ответ полезен, пожалуйста, щелкните восходящий треугольник перед этим ответом : ) в противном случае дайте мне знать, я сделаю все возможное, чтобы изменить его снова.