Ich bin neu in Python und lernt derzeit die Automatisierung von Tests. Ich habe einen UI -Test mit Pylenium
geschrieben, um die Anzahl der in verschiedenen Blog -Kategorien und -Tabs angezeigten Kurse zu validieren. />
für jede Kategorie:
Die Kategorie. menu to extract:
Tab names
The course count shown next to each tab label (e.g., "Courses (15)")
[*]For each tab:
Opens the tab
Calculates how Auf vielen Seiten des Inhalts wird die Paginationskomponente verwendet. < /li>
Für jede Seite zählt die Anzahl der auf dieser Seite angezeigten Kursblöcke. /> < /li>
< /ul>
< /li>
Am Ende jeder Registerkarte Prüfung:
Behauptet, dass die Gesamtzahl der Kurse über alle Seiten übereinstimmt, die im Registerkabel -Label gezeigt sind. /> < /li>
< /ul>
Ich bin neu in Python und lernt derzeit die Automatisierung von Tests. Ich habe einen UI -Test mit Pylenium geschrieben, um die Anzahl der in verschiedenen Blog -Kategorien und -Tabs angezeigten Kurse zu validieren. /> [list] [*] Öffnet die Blog-URL: https://intellipaat.com/blog/ai/ [*] holt alle Kategorieoptionen aus dem Dropdown-Menü [*] für jede Kategorie: Die Kategorie. menu to extract:
Tab names [*]The course count shown next to each tab label (e.g., "Courses (15)") [/list]
[*]For each tab:
Opens the tab Calculates how Auf vielen Seiten des Inhalts wird die Paginationskomponente verwendet. < /li> Für jede Seite zählt die Anzahl der auf dieser Seite angezeigten Kursblöcke. /> < /li> < /ul> < /li> Am Ende jeder Registerkarte Prüfung:
Behauptet, dass die Gesamtzahl der Kurse über alle Seiten übereinstimmt, die im Registerkabel -Label gezeigt sind. /> < /li> < /ul> [code]from selenium.webdriver.support.select import Select from selenium.webdriver.common.by import By from loguru import logger from pylenium.driver import Pylenium
class Blog: def __init__(self, py: Pylenium): self.py = py self.py.visit("https://intellipaat.com/blog/ai/")
def getOptions(self): self.py.wait().until(lambda _: self.py.get("#catdropdown")) dropdown = Select(self.py.get("#catdropdown").webelement) options = [(opt.text.strip(), opt.get_attribute("data")) for opt in dropdown.options] logger.info(f"Dropdown options fetched: {[opt[0] for opt in options]}") return options
def get_pages_raw(self): pagination = self.active_pane.get(".pagination") pages = pagination.webelement.find_elements(By.CSS_SELECTOR,".page-numbers") #py.find is so slow for some reason ;-; return pages
def get_pages_filtered(self): return [el for el in self.pages_raw if el.text.strip() not in ["NEXT »", "« Previous"]]
def get_page_count(self): if len(self.pages_filtered) != 0: return int(self.pages_filtered[-1].text.strip())
return 0
def go_to_next_page(self): next_button = next( (el for el in self.pages_raw if "next" in el.get_attribute("class").split() and "page-numbers" in el.get_attribute("class").split()),None) try: if next_button: next_button.click() else: print("Next button not found!") except Exception as e: print(f"Couldn't click next button: {e}")
class page: def __init__(self, py: Pylenium, active_pane): self.py = py self.active_pane = active_pane self.CurseCount = self.get_pageContentCount() logger.info(f"Detected {self.CurseCount} courses on current page.")
ein Daten, aber die einzige Herausforderung, mit der ich stehe, ist, dass es sehr langsam ist, dass das Abrufen und Einfügen aller Daten ungefähr 10 Minuten dauert. Wie kann ich meinen Code unten...
Ich habe Code, der Twisted verwendet, also habe ich eine Testfunktion dafür geschrieben und ihn mit @pyTest_twisted.EnsuredEferred dekoriert. Die Funktion wartet auf einige Aufschiebungen. Dann muss...
In meinem Pygame -Projekt habe ich einen Charakter, der Plattformen durchklicken kann, wenn der Spieler auf S klickt, damit sie auf eine niedrigere Plattform gehen können, wie Sie es beispielsweise...
Ich habe einen C#-UDP-Socket, von dem ich Daten zu mir nach Hause senden möchte. Der Server-Socket wird bei aws gehostet und der Client ist bei mir zu Hause. Mithilfe des UDPSocket.cs-Beispiels auf...