Подсчет экземпляров элемента с помощью селена и PythonPython

Программы на Python
Anonymous
Подсчет экземпляров элемента с помощью селена и Python

Сообщение Anonymous »

поэтому я работаю над онлайн-классом, который требует, чтобы я использовал селен для перехода * Перейдите на веб-сайт в Интернете (https://the-internet.herokuapp.com), а затем на определенную дочернюю страницу (добавить/удалить элементы), затем добавьте несколько элементов и посчитайте их, удалите некоторые и посчитайте результат. мой первый подход был довольно ветхим. Мне удалось заставить его «работать» (т. е. правильно перемещаться по элементам и щелкать их), но я не смог выполнить все требования (т. е. я не мог вести счетчик переменных и не знал, как добавлять утверждения)
И я остановился на этом подходе

Код: Выделить всё

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

class Webpage:
element_count = 0

def __init__(self, element_count, driver):
self.element_count = element_count
self.driver = driver

driver = webdriver.Firefox()

try:
wait = WebDriverWait(driver, 10)
driver.get('https://the-internet.herokuapp.com')

# Parent page loads
wait.until(ec.url_to_be('https://the-internet.herokuapp.com/'))

# Variables go here (as they depend on parent loading)

add_remove_parent = wait.until(ec.presence_of_element_located(
(By.LINK_TEXT, 'Add/Remove Elements')))

driver.fullscreen_window()

# This is where the functions happen
add_remove_parent.click()
#  * Assert that no elements have yet been added

wait.until(ec.url_to_be('https://the-internet.herokuapp.com/add_remove_elements/'))
# Child Page Loaded

wait.until(ec.element_to_be_clickable((By.XPATH, '//button[text()="Add Element"]')))

def add_element(self):
add_element_button = self.driver.find_element(By.XPATH, '//button[text()="Add Element"]')
add_element_button.click()
self.element_count += 1
print(f'The element count is {self.element_count}')

def delete_element(self):

delete_element_button = self.driver.find_element(By.CLASS_NAME, 'added-manually')
delete_element_button.click()
self.element_count -= 1
print(f'the element count is {self.element_count}')

webpage=Webpage(self,element_count=0 ,driver)

finally:
# Close the browser
driver.quit()

#
Но (и здесь я ошибаюсь), похоже, я не (создание экземпляра?), если это правильное слово → класс правильно, и мне бы хотелось, чтобы некоторые направление с этим. А также, возможно, какое-то направление по правильному вызову методов. Я сделал это с помощью более простых вещей и абстрагировал большую часть кода. Но никогда сам с нуля, и я пока не вижу, чего мне не хватает.
Кроме того, я знаю, что у меня пока нет никаких утверждений, я попробую добавить те, которые находятся после, возможно, в самих методах или, может быть, отдельно.
В большинстве случаев, когда я пробовал класс, кажется, не понимает, каким должен быть аргумент для self или драйвера, но я думал, что я предоставил это, сказав, что это должен быть Firefox.
Большой признателен за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/783 ... and-python

Вернуться в «Python»