Javascript 硒设置菜单
我正在尝试使用Selenium编写Python脚本以使用网页,但无法获取。单击()以选择可扩展列表。我已经能够登录,导航到正确的页面,但随后出现一个列表,我尝试的每个元素都失败了 我试图选择的div是一棵树。一个设置选项列表,你点击它,它会展开更多选项,你点击其中一个,它会打开一个论坛来填写和保存 这是列表的总体布局Javascript 硒设置菜单,javascript,python,selenium,Javascript,Python,Selenium,我正在尝试使用Selenium编写Python脚本以使用网页,但无法获取。单击()以选择可扩展列表。我已经能够登录,导航到正确的页面,但随后出现一个列表,我尝试的每个元素都失败了 我试图选择的div是一棵树。一个设置选项列表,你点击它,它会展开更多选项,你点击其中一个,它会打开一个论坛来填写和保存 这是列表的总体布局 <li category="category"> <a class="class"> <i class="set-
<li category="category">
<a class="class">
<i class="set-menu-icon"></i>
<span class="set-menu-label" t="Settings">sectionOfTheSettings</span>
</a>
<ul style="display: none;">
<li class="set-item" filename="someFile">
<i class="set-item-icon"></i>
<span class="set-menu-label" t="subSectionOfSettings">TCP/IP</span>
</li>
我尝试过按类查找元素、css选择器和xpath,但没有成功。
我已经尝试选择了各种元素。单击()一些元素将被识别,没有错误,但它们实际上什么都不会做。其他人会出错,说元素不存在
我可能只是误解了网页的工作原理,我对Javascript和Jquery没有很好的了解,而这两个方面是该页面非常依赖的。该页面由在我的本地网络上运行的IoT设备提供。我能够通过使用Katalon IDE并查看它选择的XPath来解决这个问题。事实证明,我离这里不远,实际上已经工作过几次了。如果显示的设置窗体上没有任何更改,它将恢复到预览部分 解决方案,使用IDE并导出为Python。根据需要编辑脚本
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = "generic IP"
driver = webdriver.Edge()
driver.get(url)
driver.find_element_by_id("login").clear()
driver.find_element_by_id("login").send_keys('gen')
driver.find_element_by_id("pswd").send_keys('generic')
driver.find_element_by_class_name("login-button").click()
#Change password prompt opens. Wait until visible and Close to bypass change
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.ID, "close")))
driver.find_element_by_id("close").click()
#Navigate to the settings page
driver.find_element_by_link_text("Setting").click()
driver.implicitly_wait(10) #wait for everything to load