【发布时间】:2016-11-01 03:39:02
【问题描述】:
我有 2 个具有相同值和类的按钮,它们是相同的。
<input class="button" value="Ir" type="submit">
我想点击第二个,它在<div class="smallfont">
如何使用 python Selenium 做到这一点?谢谢;D
【问题讨论】:
我有 2 个具有相同值和类的按钮,它们是相同的。
<input class="button" value="Ir" type="submit">
我想点击第二个,它在<div class="smallfont">
如何使用 python Selenium 做到这一点?谢谢;D
【问题讨论】:
您可以获取对这两个元素的引用,然后单击第二个。
buttons = driver.find_elements_by_css_selector("input.button");
buttons[2].click()
【讨论】:
如果我认为“smallfont”类的 div 中只有一个提交按钮是正确的(重复按钮位于没有该类的不同 div 中),那么您可以简单地使用类似于以下的路径:
//div[@class='smallfont']/input
【讨论】:
这是文档中的示例:
<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="continue" type="submit" value="Login" />
<input name="continue" type="button" value="Clear" />
</form>
</body>
<html>
login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_xpath("//form[1]")
login_form = driver.find_element_by_xpath("//form[@id='loginForm']")
input[1] 是一个数组,从 1 开始,所以在你的情况下,它应该看起来像这样(更正,以下评论):
button = driver.find_element_by_xpath("//form[@class='smallfont']/input[@value='Ir'][@type='submit'][2]")
button.click()
发件人:
http://selenium-python.readthedocs.io/locating-elements.html
【讨论】:
尝试通过以下方式解决。
String cssSelectorOfSameElements="input[type='submit'][id='button']";
List<WebElement>a=driver.findElements(By.cssSelector(cssSelectorOfSameElements);
a.get(0).click();
a.get(1).click();
a.get(2).click();
现在取决于您的要求,您可以单击特定选项卡。希望这有效。
【讨论】: