我有一个按钮,我想点击这个按钮,我做
login_form = driver.find_element_by_xpath("/html/body/div/h1/div[1]").click();
我的代码:
driver = webdriver.Firefox()
driver.get('http://www.textdet.com/')
e = driver.find_element_by_id("imagefile")
e.send_keys("/home/brm17/Desktop/ProjetFinDetude/image.png")
login_form = driver.find_element_by_xpath("/html/body/div/h1/div[1]").click();
但我明白了:
selenium.common.exceptions.NoSuchElementException:消息:无法执行 locate元素:/ html / body / div / h1 / div [1]
如何点击Download bounding boxes
python
上的selenium
按钮,html
<h1 style="position: relative"><a href="/">Scene Text Detection Demos</a>
<div aria-label="..." role="group" class="btn-group" style="position: absolute; bottom: 10px; right: 0px;">
<!--<button id="toggle_text_propoals" type="button" class="btn btn-success btn-sm">Show text proposals</button>-->
<a href="download_bboxes/acdb4bb9-8b73-4020-bfe5-737316033e5e" type="button" class="btn btn-success btn-sm">Download bounding boxes</a>
</div>
</h1>
答案 0 :(得分:1)
该按钮位于<a>
标记中,而不是<div>
标记。您还只有一个<div>
,因此div[1]
无效。您可以按文字搜索
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
button = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//a[contains(., "Download bounding boxes")]')))
button.click();
或者按类,因为你只有一个按钮,所以类btn
应该是唯一的。
driver.find_element_by_class_name('btn').click(); # or 'btn-success' or 'btn-sm'
顺便说一句,click()
没有返回任何内容,您无法将其分配给login_form
。
答案 1 :(得分:0)
该按钮位于<a>
标签下,因此我们为Xpath编写代码:
driver.find_element_by_xpath("//a[. = 'Download bounding boxes']").click()
,因此它找到该文本为网站上的“下载边界框”,然后单击它。
在//
上面的代码中编写a是因为按钮位于<a>
标记内,如果代码在{{1}下,我们也可以编写//span
,//div
}或span
标签。