Ich möchte, dass Selen auf die Option Drucken klicken. Ich kann das Element nach seinem XPath für einen bestimmten Ordner finden. Dies ist jedoch nicht nützlich, wenn ich mit dem Durchführen von Ordnern beginne, da ich nicht sicher bin, wie der Index jedes Listenelements ist. Idealerweise würde ich den CSS -Selektor verwenden, aber das Element scheint nicht sichtbar zu sein. />
Hier ist der Dom -Baum, wie der Dom -Baum nach Selenium klickt:
Wie kann ich sicherstellen, dass die Druckoption von CSS -Selektor (oder einem anderen praktikablen Alternative) gefunden werden kann, damit ich auf sie versuchte. Jeder gibt einen Fehler zurück, der besagt, dass das Element nicht gefunden werden kann. Gerne liefern zusätzliche Informationen. Danke! < /P>
Code: Select all
#selenium version == 4.27.1
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time
# Initial Login:
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
browser = webdriver.Chrome(options=chrome_options)
browser.get("https://...")
enterEmail = browser.find_element(By.XPATH, "//*[@id='email']")
enterEmail.send_keys("email address")
enterPwd = browser.find_element(By.XPATH, "//*[@id='password']")
enterPwd.send_keys("password")
time.sleep(2)
signIn = browser.find_element(By.XPATH, "//*[@id='login_btn']")
signIn.click()
time.sleep(2)
# Create Dictionary of patient information to loop through:
patientDict = {
'25-003049': ['John Doe', '267087'],
'25-003050': ['John Doe', '269226'],
'25-003051': ['John Doe', '275687']
}
# Create List of patients that errored during download for manual review:
errorList = []
for key in patientDict:
try:
# Declare Variables for patientDict keys and values:
case_number = key
patient_name = patientDict[key][0]
visit_id = patientDict[key][1]
browser.get("https://...")
searchMenuOption = browser.find_element(By.CLASS_NAME, "search")
searchMenuOption.click()
searchName = browser.find_element(By.XPATH, "/html/body/div[1]/div[3]/div[2]/div[1]/div[1]/input")
searchName.send_keys(patient_name)
clickMagGlass = browser.find_element(By.XPATH, "/html/body/div[1]/div[3]/div[2]/div[1]/div[1]/button")
clickMagGlass.click()
clickName = browser.find_element(By.XPATH, "/html/body/div[1]/div[3]/div[2]/div[1]/ul/li")
clickName.click()
items = browser.find_elements(By.XPATH, "//*['/html/body/div[1]/div[4]/div[3]/div[2]/ul/li' and contains(text()," + visit_id + ")]")
for item in items:
x = item.find_elements(By.XPATH, ".//descendant::a")
for y in x:
y.click()
# Can find absolute XPATH with list item and href indices:
clickPrint = y.find_elements(By.XPATH, "//*[@id='documentlist']/li[5]/div[5]/a[5]")
# It will find it now by CSS Selector based on Alohci's suggested update in the comments, but shows as not interactable if kept in a loop:
clickPrint = y.find_elements(By.CSS_SELECTOR, ".tool.print")
for printDialog in clickPrint:
printDialog.click()
# I've also tried it without the loop, but it returns an unable to locate element:
clickPrint = y.find_element(By.CSS_SELECTOR, ".tool.print")
clickPrint.click()
except:
errorList.append(patient_name)
< /code>
Openingin progress
[url=#][/url]Visit Jul. 6th, 2023
Visit #269977 [url=#]Options[/url]
Jul 06, 2023 09:41:54AM
17 Folders
Ok
[url=#]Rename[/url]
[url=#]Comment[/url]
[url=#]Delete[/url]
[url=#]Export[/url]
[url=#]Print[/url]
[url=#][/url]