我有以下代码:
driver.get(<some url>)
for element in driver.find_elements_by_class_name('thumbnail'):
element.find_element_by_xpath(".//a").click() #this works and navigates to new page
element.find_element_by_link_text('Click here').click() #this doesn't
后者需要通过单击缩略图来导航以下HTML(当然是简化的),该缩略图指向一个新页面,然后需要单击该Click here
新页面中的链接:
<!DOCTYPE html>
<html lang="en-US" prefix="og: http://iuytp.me/ns# fb: http://iuytp.me/ns/fb#">
<head>
<meta charset="UTF-8" />
<title>Releases</title>
</head>
<body class="archive category category-releases category-4 custom-background">
<div id="main">
<div id="container" class="one-column">
<div id="content" role="main">
<h1 class="page-title">Releases</h1>
<div id="thumbnail-post-display">
<div id="thumbnail-post" class="post-7158 post type-post status-publish format-standard has-post-thumbnail hentry category-blog category-designer category-releases category-uncategorized">
<div class="thumbnail"><a href="http://records.net/uncategorized/designer-7-inch-bufu-records-co-release/" title="Permanent link to Designer – 7 inch" rel="bookmark"><img width="300" height="300" src="http://records.net/dev/wp-content/uploads/2014/05/dboypledge32-300x300.png" class="attachment-thumbnail wp-post-image" alt="dboypledge3" /></a></div>
<h2><a href="http://records.net/uncategorized/designer-7-inch-bufu-records-co-release/" title="Permanent link to Designer – 7 inch" rel="bookmark">Designer – 7 inch</a></h2>
</div>
</div><!--end thumbnail post display-->
<div id="thumbnail-post-display">
<div id="thumbnail-post" class="post-7107 post type-post status-publish format-standard has-post-thumbnail hentry category-blog category-releases">
<div class="thumbnail"><a href="http://records.net/releases/people-2014-tour-demos/" title="Permanent link to All My People – 2014 Tour Demos" rel="bookmark"><img width="300" height="300" src="http://records.net/dev/wp-content/uploads/2014/04/01_Doubt-mp3-image-300x300.png" class="attachment-thumbnail wp-post-image" alt="" /></a></div>
<h2><a href="http://records.net/releases/people-2014-tour-demos/" title="Permanent link to All My People – 2014 Tour Demos" rel="bookmark">All My People – 2014 Tour Demos</a></h2>
</div>
</div><!--end thumbnail post display-->
<div id="thumbnail-post-display">
<div id="thumbnail-post" class="post-7089 post type-post status-publish format-standard has-post-thumbnail hentry category-blog category-releases">
<div class="thumbnail"><a href="http://records.net/releases/sirens-blossom-talk/" title="Permanent link to Syrins – Boss Talk" rel="bookmark"><img width="300" height="300" src="http://records.net/dev/wp-content/uploads/2014/04/sirens_final_smaller-300x300.jpg" class="attachment-thumbnail wp-post-image" alt="sirens_final_smaller" /></a></div>
<h2><a href="http://records.net/releases/sirens-blossom-talk/" title="Permanent link to Syrins – Boss Talk" rel="bookmark">Syrins – Boss Talk</a></h2>
</div>
</div><!--end thumbnail post display-->
<div id="thumbnail-post-display">
<div id="thumbnail-post" class="post-7073 post type-post status-publish format-standard has-post-thumbnail hentry category-blog category-releases">
<div class="thumbnail"><a href="http://records.net/releases/worlds-strongest-man-scares/" title="Permanent link to World’s Tough Man – Sorry Scares You" rel="bookmark"><img width="300" height="300" src="http://records.net/dev/wp-content/uploads/2014/03/a2312749950_10-300x300.jpg" class="attachment-thumbnail wp-post-image" alt="a2312749950_10" /></a></div>
<h2><a href="http://records.net/releases/worlds-strongest-man-scares/" title="Permanent link to World’s Tough Man – Sorry Scares You" rel="bookmark">World’s Tough Man – Sorry Scares You</a></h2>
</div>
</div><!--end thumbnail post display-->
<div id="thumbnail-post-display">
<div id="thumbnail-post" class="post-7046 post type-post status-publish format-standard has-post-thumbnail hentry category-blog category-releases">
<div class="thumbnail"><a href="http://records.net/releases/sundog-space-criminal/" title="Permanent link to Dog – Space Criminal" rel="bookmark"><img width="300" height="300" src="http://records.net/dev/wp-content/uploads/2014/03/Sundog_cover_high_res-300x300.jpg" class="attachment-thumbnail wp-post-image" alt="dog_cover_high_res" /></a></div>
<h2><a href="http://records.net/releases/sundog-space-criminal/" title="Permanent link to Dog – Space Criminal" rel="bookmark">Dog – Space Criminal</a></h2>
</div>
</div><!--end thumbnail post display-->
<div style="clear:both"></div>
</div><!-- #container -->
</div><!-- #main -->
</div><!-- #wrapper -->
</div><!--#bg-wrapper-->
</body>
</html>
但是我的代码吐出了以下错误:
Traceback (most recent call last):
...
File "crawler.py", line 17, in main
driver.find_element_by_link_text('Click here').click()
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 254, in find_element_by_link_text
return self.find_element(by=By.LINK_TEXT, value=link_text)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 662, in find_element
{'using': by, 'value': value})['value']
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 173, in execute
self.error_handler.check_response(response)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 164, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: u'no such element\n (Session info: chrome=35.0.1916.153)\n (Driver info: chromedriver=2.10.267517,platform=Mac OS X 10.9.3 x86_64)'
问题似乎是该元素未使用新页面的内容进行更新。更换有问题的生产线的element
使用driver
也不起作用。我究竟做错了什么?
请注意,我必须能够对所有缩略图执行此操作(因此需要for
循环)。
原来,您需要预先存储要导航的链接。这就是最终对我有用的东西(发现此线程很有帮助):
driver.get(<some url>)
elements = driver.find_elements_by_xpath("//h2/a")
links = []
for i in range(len(elements)):
links.append(elements[i].get_attribute('href'))
for link in links:
print 'navigating to: ' + link
driver.get(link)
# do stuff within that page here...
driver.back()
问题似乎是没有用新页面的内容更新元素。将问题行的替换为也不起作用。我做错了什么? 请注意,我必须能够对所有缩略图执行此操作(因此使用循环)。
问题内容: 我有一个JFileChooser,我需要以编程方式将其currentDirectory设置为包含多个SMB共享(例如)的网络主机。从技术上讲,这不是“目录”,而是代表可用共享列表的shell文件夹。 JFileChooser导航到特定共享(例如)没有问题,但是不能处理主机“目录”本身(例如)。 用户可以通过“网络”外壳文件夹,或找到特定的共享并导航至其父目录,来导航至JFileChoo
任何额外的帮助或任何建议的工具,而不是HTMLUnit,将更好地与jsoup合作,都将是真正有帮助的!提前感谢! 有关其他信息的编辑:看起来是不起作用...我修改了代码,newPage主体看起来包含了与第一页相同的信息:
null 在调用之前和之后,我尝试了,但都不起作用(这是有意义的:在它没有要弹出的内容之前;在它只关闭刚刚添加的片段之后)。这是否意味着唯一的方法是重写来拦截它,并确保在这些情况下不会被调用? 谢了!
我正在我的应用程序中尝试导航架构组件。早些时候,我使用片段事务来实现以下功能。基本上,我想从导航。 碎片- 如果我正在使用导航组件并尝试 然后结果是FragmentA被FragmentB替换并且背景片段不可见。 我想知道一个解决方案,如果导航架构组件允许的话。 附言:我听说过嵌套导航主机,但从内部使用它好吗。 更新: FragmentB将有进一步交易的行动,例如: 碎片- 当用户按下后退按钮时,片
我已使用此(react router 2.0)在路由器上设置了browserHistory: 然后,我尝试使用react router中的browserHistory以编程方式从视图(ala: 这将URL更改为 /map但不会呈现该路由中的组件。我做错了什么?