Я пытался создать скрипт Python, который будет входить на страницу моего маршрутизатора, регистрировать все подключенные устройства, а затем отображать их по их подключенным именам.
Я сделал скрипт, который выглядит так:
from requests import session
from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
url = "http://192.168.1.1/login/login.html"
browser = webdriver.Chrome()
wait = WebDriverWait(browser, 100)
browser.get(url)
kad = browser.find_element_by_id("AuthName")
password = browser.find_element_by_id("AuthPassword")
kad.send_keys("MyRouterLoginName")
password.send_keys("MyRouterLoginPassword")
buton = browser.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/div/ul/li/div[3]/form/fieldset/ul/li[6]/input") #this is my login button
buton.click()
homepage = "http://192.168.1.1/index.html"
browser.get(homepage) #Router asks for changing default password, i skip it like that
sleep(5)
verify = browser.find_element_by_css_selector('body')
print(verify.text) #see my later explanation
xpathmethod = browser.find_element_by_xpath("/html/body/div[3]/div/div/div/div[3]/div/table/tbody/tr/td[3]/div/ul[1]/li[1]/div[2]/a")
print(xpathmethod.text)
print("Finding by css")
content = browser.find_element_by_css_selector('.addmenu')
print(content.text)
Строка проверки состояла в том, чтобы убедиться, что веб-страница была полностью загружена, но здесь есть проблема, в то время как веб-страница загружается, сначала она загружает элементы меню по умолчанию (такие как состояние подключения, настройки сети, устранение неполадок и т. Д.), Затем загружает устройства, которые в настоящее время подключен. Webdriver почему-то не распознает секцию подключенных устройств и выдает ошибку «невозможно найти элемент».
Я пробовал методы селектора xpath и css, но оба они дают один и тот же результат.
Извините, я не могу вставить HTML полностью, но вот путь, который дает мне Chrome, когда я проверяю элемент
html body div.index div div #mainframe html body div div #contentPanel #mapView div div table tbody tr td div #wlInfo li div a