我有一个html代码如下:
<div class="abc">
<div class ="xyz"
<p> xyz </p>
</div>
<div class= "foo">
<p>foo</p>
<a class="btn btn-lg btn-success" href="www.google.com" role="button" name="click" id="click">Click me</a>
<div>
</div>
如何在此处抓取Click me
按钮并使用Selenium进行单击。我使用driver.find_element_by_id()
但它没有用,并且出错了。
我想我可能需要遍历div标签才能到达按钮。我尝试使用下面的代码来获取div类但无法继续。
def test(self):
self.driver.get("sample site address")
elem = self.driver.find_element_by_class_name("abc")
#need to get to the button and click it?
ERROR:
raise exception_class(message, screen, stacktrace)
InvalidSelectorException: Message: u'The given selector abc is either invalid or does not result in a WebElement. The following error occurred:\nInvalidSelectorError: Compound class names not permitted' ; Stacktrace:
at FirefoxDriver.annotateInvalidSelectorError_ (file:///tmp/tmpXXYwwK/extensions/fxdriver@googlecode.com/components/driver_component.js:8879)
at FirefoxDriver.prototype.findElementInternal_ (file:///tmp/tmpXXYwwK/extensions/fxdriver@googlecode.com/components/driver_component.js:8910)
at FirefoxDriver.prototype.findChildElement (file:///tmp/tmpXXYwwK/extensions/fxdriver@googlecode.com/components/driver_component.js:8917)
at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmpXXYwwK/extensions/fxdriver@googlecode.com/components/command_processor.js:10884)
at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmpXXYwwK/extensions/fxdriver@googlecode.com/components/command_processor.js:10889)
at DelayedCommand.prototype.execute/< (file:///tmp/tmpXXYwwK/extensions/fxdriver@googlecode.com/components/command_processor.js:10831)
-----
答案 0 :(得分:0)
由于Click me
是一个链接,您可以使用链接文字找到它,然后点击它:
driver.find_element_by_link_text("Click me")