Я пытаюсь нажать «Создать новую сеть», используя селен.
<button type = "button" id = "dt-refreshBtn" class = "btn wc-btn--link" data-label = "Create New Network" role = "link"><span class = "icon-button" data-testid = "dnxButton-iconButtonContainer" data-awt = "networkListing-button-createNew"><i class = "dnac-icon-add-circle" data-testid = "dnxButton-icon" title = "Create New Network"></i><span class = "dnx-btn-icon-label" data-testid = "dnxButton-iconLabel">Create New Network</span></span></button>
<span class = "icon-button" data-testid = "dnxButton-iconButtonContainer" data-awt = "networkListing-button-createNew"><i class = "dnac-icon-add-circle" data-testid = "dnxButton-icon" title = "Create New Network"></i><span class = "dnx-btn-icon-label" data-testid = "dnxButton-iconLabel">Create New Network</span></span>
<i class = "dnac-icon-add-circle" data-testid = "dnxButton-icon" title = "Create New Network"></i>
<span class = "dnx-btn-icon-label" data-testid = "dnxButton-iconLabel">Create New Network</span>
Я попробовал несколько сценариев, чтобы найти расположение кнопки «Создать новую сеть», но не смог по следующей причине.
вот сценарии, которые я пробовал.
driver.find_element(By.CSS_SELECTOR, "[title='Create New Network']").click()
driver.find_element(By.CSS_SELECTOR, "[data-awt='networkListing-button-createNew']").click()
driver.find_element(By.CSS_SELECTOR, "[id='dt-refreshBtn']").click()
driver.find_element(By.CSS_SELECTOR, "[class='dnx-btn-icon-label']").click()
driver.find_elements(By.XPATH, "//*[@class='dnx-btn-icon-label']").send_keys(Keys.ENTER)
driver.find_elements(By.XPATH, "//button[@class='btn wc-btn--link']")[0].send_keys(Keys.ENTER)
driver.find_elements(By.XPATH, "//*[@id='dt-refreshBtn']").send_keys(Keys.ENTER)
driver.find_element(By.ID, "dt-refreshBtn").send_keys(Keys.ENTER)
driver.find_element(By.CSS_SELECTOR, "[data-testid='dnxButton-icon']").send_keys(Keys.ENTER)
driver.find_element(By.CSS_SELECTOR, "[data-testid='dnxButton-iconLabel']").send_keys(Keys.ENTER)
driver.find_elements(By.CSS_SELECTOR, "[data-awt='networkListing-button-createNew']").click()
driver.find_element(By.CSS_SELECTOR, "[title='Create New Network']").click()
driver.find_elements(By.XPATH, "//*[@id='dt-refreshBtn']").click()
не могли бы вы помочь этому?
Теперь давайте рассмотрим каждую ошибку. .find_elements() используется для нескольких элементов, а .click() | send_keys() используется для одного элемента, поэтому большинство дадут объект «список», не имеющий атрибута «щелчок», если вы не получите доступ к отдельному элементу.
.send_keys() обычно используется для входных тегов или текстовых полей, и вам понадобится .click() для тега кнопки.
Теперь некоторые допустимые xpaths будут такими:
driver.find_element(By.XPATH, "//button[@class='btn wc-btn--link']").click()
будет допустимым xpath, если это единственный класс кнопок с таким именем класса.
driver.find_element(By.XPATH, "//button[@id='dt-refreshBtn']").click()
Если это все еще не находит, проверьте, находится ли элемент под фреймами или теневыми корнями.
driver.find_element(By.XPATH, "//button[@id='dt-refreshBtn']").click()
должно сработать
Спасибо за комментарии. но теперь я получил эту ошибку с driver.find_element(By.XPATH, "//button[@id='dt-refreshBtn']").click() Traceback (последний последний вызов): File "/Users/onboarding/ venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", строка 861, в find_element return self.execute(Command.FIND_ELEMENT, {"using": by, "value ": значение})["значение"] selenium.common.exceptions.NoSuchElementException: Сообщение: нет такого элемента: Не удалось найти элемент: {"метод":"xpath","селектор":"//кнопка[@id= 'dt-refreshBtn']"}
наконец, я нашел причину и получил решение в этом коде.
driver.find_element(By.XPATH, "//button[@id='dt-refreshBtn' and @class='btn wc-btn--link']")
с этой комбинацией это сработало. Спасибо всем.
Спасибо за комментарии. но теперь я получил эту ошибку с driver.find_element(By.XPATH, "//button[@class='btn wc-btn--link']").click() Traceback (последний последний вызов): File "/ Users/onboarding/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", строка 445, в find_element return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"] selenium.common.exceptions.NoSuchElementException: Сообщение: нет такого элемента: Не удалось найти элемент: {"method":"xpath","selector":"//button [@class='btn wc-btn--link']"}