使用“ find_element_by_xpath”查找元素

时间:2019-02-16 19:34:51

标签: python-3.x selenium-webdriver

我正在尝试使用“ find_element_by_xpath”查找元素,但是却收到错误消息,提示“无法找到元素”。

我也尝试过进行隐式等待,但仍然无法找到该元素。

HTML文件如下:

<div class="actions">
<input type="submit" value="Save" data-action="save">
</div> 
<input type="hidden" name=actionId>    

我尝试过下面的代码行:

driver.implicitly_wait(10)

driver.find_element_by_xpath("//input[@type='submit']")

driver.find_element_by_xpath("//class[@name='
actions']/input[@type='submit']"

driver.find_element_by_xpath("//form[@id='form- 
submit']/input[@type='submit']")

以上所有尝试均显示错误“没有此类元素:无法找到元素”

我曾经尝试过“ execute_script”来处理隐藏元素,

element = driver.find_element_by_xpath("//input[@type='submit']")
driver.execute_script("arguments[0].click();", element)

这没有给出任何错误,但是我不确定它是否单击了正确的按钮,因为正在打开新网页并显示消息“无法访问您尝试的页面”。

1 个答案:

答案 0 :(得分:0)

您的xpath似乎不错,请检查该元素是否位于iframe内,如果是,请先切换到iframe,然后才能对该元素进行操作。

要切换到iframe,您可以使用:driver.switch_to_frame(driver.find_element_by_tag_name('iframe')),然后您可以对该元素进行操作,并且要切换回默认内容,可以使用driver.switch_to_default_content()