当前位置: 首页 > 面试题库 >

如何在Selenium for Python上使用XPATH语法选择元素?

丁星火
2023-03-14
问题内容

考虑使用以下HTML:

<div id='a'>
  <div>
    <a class='click'>abc</a>
  </div>
</div>

我想单击abc,但是包装div可能会更改,所以

driver.get_element_by_xpath("//div[@id='a']/div/a[@class='click']")

不是我想要的

我试过了:

 driver.get_element_by_xpath("//div[@id='a']").get_element_by_xpath(.//a[@class='click']")

但这不适用于更深层的嵌套

有任何想法吗?


问题答案:

的HTML

<div id='a'>
  <div>
    <a class='click'>abc</a>
  </div>
</div>

您可以将 XPATH 用作:

//div[@id='a']//a[@class='click']

输出

<a class="click">abc</a>

也就是说,您的Python代码应为:

driver.find_element_by_xpath("//div[@id='a']//a[@class='click']")


 类似资料:
  • 问题内容: 我想创建一个Selenium测试,以使用AOL邮件测试我们的扩展。我设法登录到AOL并撰写了电子邮件,但是我还需要在iframe中的编辑器中选择元素。我检查了一下,即使打开了编辑器,以下测试也失败了: 我得到了错误。如何通过Xpath(或通过Selenium以任何其他方式)选择iframe的主体和其他元素? 问题答案: 在切换到之前,您无法浏览。您的xPath 将不会起作用,因为代码位

  • //div/SPAN[包含(text(),“默认值”)]/祖先::div/SPAN[包含(text(),“选择日期”)]/follows-sibling::div//输入 Xpath 2返回3个元素,即图像中的下拉项。 //div[@class='_selectcontainer_psmgei']/div//输入 截图:视窗截图 HTML屏幕截图:HTML代码

  • 问题内容: 我有一个GWT应用程序,正在尝试使用Selenium编写一些测试。 我正在使用XPath来标识测试页面上的元素。使用将无效,因为这些值是由GWT自动生成的,并且可以更改。当我意识到我可以按其标签找到按钮时,事情进展顺利,如下所示: 但是,当我开始运行多个测试时,我开始遇到问题。我意识到问题是,一旦Javascript生成的GWT应用程序的所有不同“页面”都保留在HTML中的隐藏元素中。

  • 如何只选择父级而不选择子级? List summaryLinks=summary.findelements(by.xpath(“”));

  • 假设我有这个(简化): 然后,我可以通过XPath选择submit按钮。//form[@id='myform']/input[@type='submit']。太棒了 但是,我的模板可能会发生变化,我希望在提交按钮的深度上保持灵活。它可能会放在一个表格中,如下所示: 我知道我可以选择孙子的元素,但我不能选择任何深度的孙子。例如。: 仅选择孙子女,没有进一步的深度 那么,如何在不使用元素ID的情况下可

  • 问题内容: 我们选择带有Django 1.4测试和Selenium的元素,如下所示: (该类继承自)。 问题是有时有些元素没有文本,并且如果我们选择它,它就会失败(len为0)。如何选择没有文本的元素? 更新 :由于不起作用,我不得不断言两行以断言没有文本: 现在,我可以用一行声明相同的内容: 问题答案: 您可以使用XPath的 功能。