【发布时间】:2018-04-26 14:28:50
【问题描述】:
与此question 相关的案例。喜欢它,我尝试点击其中一个区域。我尝试使用 python 和 splinter 来实现它。我不擅长它需要你的帮助。
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="expires" content="0">
<meta name="robots" content="noindex">
<title>CS121 SNMP/Web Adapter</title>
<script type="text/javascript" src="/lang/lang.json"></script>
<script type="text/javascript" src="/js/gxlang.js"></script>
</head>
<frameset cols="216,*" frameborder="0" framespacing="0" border="0">
<frame src="menu.shtml" name="cs_menu" frameborder="0">
<frameset rows="73,*" frameborder="0" framespacing="0" border="0">
<frame src="status.shtml" name="cs_status" frameborder="0" scrolling="no">
<frame src="default.shtml" name="cs_main" frameborder="0">
</frameset>
</frameset>
现在我指向 default.shtml
<body class="main">
<h2><script type="text/javascript">_dw("Loading")</script> <a href="/main.shtml">/main.shtml</a> ...</h2>
</body>
</html>
main.shtml 旁边
<body class="main">
<img src="load.gif" width="36" height="36" name="ajax" id="ajax" style="position:absolute; left:10px; top:10px; z-index:5; border:0; display:none; filter:Alpha(opacity=80, finishopacity=20, style=2);">
<img src="led1.gif" width="16" height="16" name="led1" style="position:absolute; left:98px; top:212px; z-index:3; border:0;">
<img src="led1.gif" width="16" height="16" name="led2" style="position:absolute; left:320px; top:205px; z-index:3; border:0;">
<img src="led1.gif" width="16" height="16" name="led3" style="position:absolute; left:474px; top:205px; z-index:3; border:0;">
<img src="led1.gif" width="16" height="16" name="led4" style="position:absolute; left:573px; top:212px; z-index:3; border:0;">
<img src="led1.gif" width="16" height="16" name="led5" style="position:absolute; left:334px; top:410px; z-index:3; border:0;">
<img src="led1.gif" width="16" height="16" name="led6" style="position:absolute; left:398px; top:266px; z-index:3; border:0;">
<img src="b.png" style="position:absolute; top:8px; left:8px; z-index:1; border:0;" usemap="#cetmap">
<map name="cetmap">
<area shape="rect" coords="300,184,496,314" href="main2.shtml" alt="Show Modules" title="Show Modules">
**<area shape="rect" coords="79,195,239,302" href="#" onclick="return toggle_infobox('ac_groups')" alt="Show AC Groups" title="Show AC Groups">**
<area shape="rect" coords="260,226,280,246" href="#" onclick="return toggle_infobox('ac_groups2')" alt="Show AC Groups Transfer Parameters" title="Show AC Groups Transfer Parameters">
<area shape="rect" coords="314,394,478,499" href="#" onclick="return toggle_infobox('dc_groups')" alt="Show DC Groups" title="Show DC Groups">
<area shape="rect" coords="400,344,420,364" href="#" onclick="return toggle_infobox('dc_groups2')" alt="Show DC Groups Transfer Parameters" title="Show DC Groups Transfer Parameters">
<area shape="rect" coords="553,195,718,302" href="#" onclick="return toggle_infobox('phases')" alt="Show Phases" title="Show Phases">
<area shape="rect" coords="514,226,534,246" href="#" onclick="return toggle_infobox('phases2')" alt="Show Phases Transfer Parameters" title="Show Phases Transfer Parameters">
</map>
我尝试点击带有“**”的区域
我尝试了几件事。这就是我现在得到的:
#!/usr/bin/env python
from splinter import Browser
from time import sleep
from lxml import html
from random import randrange
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
exitCode = 0
def my_range(start, end, step):
while start <= end:
yield start
start += step
with Browser('firefox', headless=True) as browser:
browser.visit("http://1.1.1.1")
sleep(22)
browser.driver.save_screenshot('ups2.png')
test = browser.find_by_name("cetmap")
test2 = browser.driver.find_elements_by_cssSelector("body > map:nth-child(9) > area:nth-child(3)")
browser.execute_script("arguments[0].click();", test2)
sleep(5)
browser.driver.save_screenshot('ups.png')
browser.quit()
exit(0)
【问题讨论】:
-
代码试用一下好吗?
-
我正在编辑主帖
-
也许这有帮助,当我检查站点时,我在块处看到灰线:跨度>