【问题标题】:Selenium Webdriver locator for div class compound text用于 div 类复合文本的 Selenium Webdriver 定位器
【发布时间】:2018-04-08 00:25:58
【问题描述】:

我正在尝试单击与 UI 中的其他对象共享大量代码的按钮。这是按钮的代码:

<div class="ui green ok inverted button">
<i class="checkmark icon"></i> Yes </div>

这是按钮所在的模式:

<div class="actions">  <div class="ui red cancel inverted button">
<i class="remove icon"></i> No </div>
<div class="ui green ok inverted button">
<i class="checkmark icon"></i> Yes </div> <!--anchor--> </div>

这是我尝试但没有成功的示例:

By.xpath("//div[text()='green']")

我也尝试过“类”标签定位器和其他 div 类文本定位器,​​但每次都“找不到”。文本“green”和“Yes”是此特定对象的唯一唯一属性。

【问题讨论】:

  • 能否分享一下按钮的完整html代码?
  • 上面的 HTML 是用于按钮的所有代码。这是该按钮所属的模态的 HTML:
  • //*[@class="checkmark icon" and text()="Yes"] 试试这个
  • 这个定位器不起作用,虽然看起来应该可以!

标签: html css selenium xpath webdriver


【解决方案1】:

试试这个:

driver.find_element_by_xpath("//div[@class='actions']//div[@class='ui green ok inverted button']")

【讨论】:

  • 嗯...现在我得到“元素不可见”,这听起来像是被识别但无法交互。看起来定位器本身正在工作,所以谢谢!
  • 原来代码中有一个重复的对象,可以识别,但设置为不可见。
【解决方案2】:
//div[contains(@class,"green")]

【讨论】:

  • 我尝试了上面的代码并收到此错误:错误:预期条件失败:等待元素可点击:By.xpath://div[contains(@class,'green')]
【解决方案3】:

我也为此设计了一个 CSS 选择器:

By.cssSelector(".odr-disconnect-phone.ui.green.ok.inverted.button"

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签