我正在尝试编写一个Python脚本来自动更改我的路由器站点(10.0.0.2)中的Wi-Fi密码 . 我正在使用Selenium而我一直在打砖墙,因为我找不到一些元素 . 非常感谢您的帮助 . 我将在下面提供调试所需的所有资源:
我成功使用XPath的find元素登录我的路由器 .
找到提交/登录按钮并单击它:
browser.find_element_by_xpath('//input[@type="submit"]').send_keys(Keys.ENTER)`
此外,我尝试了几种方法来找到元素,但我暂时将它们评论出来 .
#Locate Advanced Tab --1
browser.find_element_by_name("Advanced").click()
#Locate Advanced Tab --2
#tt1 = browser.find_element_by_xpath("//td[@id='topnav1']")
#tt1.click()
[1]#Locates the the advance tab on the page -- 3
#adv = browser.find_element_by_id('topnav1')
#adv.send_keys(Keys.RETURN)
这是我的路由器中“高级”选项卡的代码:
<td id="topnav1" class="topnavoff" width="140"><a href="javascript:ontopnav('1')">Advanced</a></td>
已编辑:代码和错误 .
browser.find_element_by_link_text("Advanced").click()
Traceback(最近一次调用最后一次):文件“celenium.py”,第22行,在browser.find_element_by_link_text(“Advanced”) . click()文件“C:\ Users \ Aesop \ AppData \ Local \ Programs \ Python \ Python36 -32 \ lib中\站点包\硒\的webdriver \远程\ webdriver.py “管线337,在返回find_element_by_link_text self.find_element(由= By.LINK_TEXT,值= LINK_TEXT)文件” C:\用户\伊索\应用程序数据\ local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第791行,在find_element'value':value})['value']文件”C:\用户\ Aesop \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第256行,执行self.error_handler.check_response(响应)文件”C: \ Users \ Aesop \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py“,第194行,在check_response中引发exception_class(message,screen,stacktrace)selenium . common.exceptions.NoSuchElementException:消息:无法找到元素:Advanc ED
browser.find_element_by_css_selector("#topnav1>a").click()
回溯(最近通话最后一个):文件 “celenium.py”,第20行,在browser.find_element_by_css_selector( “#topnav1>一”)点击()文件“C:\用户\伊索\应用程序数据\本地\程序\蟒\ Python36-32 \ lib中\站点包\硒\的webdriver \远程\ webdriver.py “线路457,在返回find_element_by_css_selector self.find_element(由= By.CSS_SELECTOR,值= css_selector)文件” C:\用户\ Aesop \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第791行,在find_element'value':value})['value']文件” C:\ Users \ Aesop \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第256行,执行self.error_handler.check_response(response)文件“C:\ Users \ Aesop \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py”,第194行,在check_response中引发exception_class(消息,屏幕,堆栈跟踪) )selenium.common.exceptions.NoSuchElementException:消息:无法找到e lement:#topnav1> a
browser.find_element_by_css_selector("td.topnavoff#topnav1 > a ").click()
回溯(最近通话最后一个):文件 “celenium.py” 22行,在browser.find_element_by_css_selector( “td.topnavoff#topnav1> A”) . 点击()文件“C:\用户\伊索\应用程序数据\本地\程序\的Python \ Python36-32 \ lib中\站点包\硒\的webdriver \远程\ webdriver.py “线路457,在返回find_element_by_css_selector self.find_element(由= By.CSS_SELECTOR,值= css_selector)文件” C: \ Users \ Aesop \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py“,第791行,在find_element'value':value})['value' ]文件“C:\ Users \ Aesop \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”,第256行,执行self.error_handler.check_response(响应)文件“C:\ Users \ Aesop \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py”,第194行,在check_response中引发exception_class(消息, screen,stacktrace)selenium.common.exceptions.NoSuchElementException:消息:Una找到元素:td.topnavoff#topnav1> a
来自路由器站点的代码段:
<table id=topnav_container2 cellspacing=0 border=0>
<tbody>
<tr>
<td style="width: 1px; background-color: white"></td>
<td id=modnum rowspan=2><img alt="" src="pic/DSL-G225.gif"></td>
<td style="width: 2px; background-color: white"></td>
<td id=topnav0 class=topnavon width=140 rowspan=2><a href="javascript:ontopnav('0')" >Setup</a></td>
<td style="width: 2px; background-color: white"></td>
<td id=topnav1 class=topnavoff width=140><a href="javascript:ontopnav('1')">Advanced</a></td>
<td style="width: 2px; background-color: white"></td>
<td id=topnav2 class=topnavoff width=140><a href="javascript:ontopnav('2')">Maintenance</a></td>
<td style="width: 2px; background-color: white"></td>
<td id=topnav3 class=topnavoff width=140><a href="javascript:ontopnav('3')">Status</a></td>
<td style="width: 2px; background-color: white"></td>
<td id=topnav4 class=topnavoff width=140><a href="javascript:ontopnav('4')">Help</a></td>
<td style="width: 2px; background-color: white"></td>
</tr>
<tr>
<td></td>
<td style="background-color: #404343"></td>
<td style="background-color: #404343"></td>
<td style="background-color: #404343"></td>
<td style="background-color: #404343"></td>
<td style="background-color: #404343"></td>
<td style="background-color: #404343"></td>
<td style="background-color: #404343"></td>
<td style="background-color: #404343"></td>
<td style="background-color: #404343"></td>
<td style="background-color: #404343"></td>
</tr>
</tbody>
</table>
1 回答
要单击
link
,文本为 Advanced ,您可以使用以下任何一行代码: