当前位置: 首页 > 知识库问答 >
问题:

我在为java选择selenium中的按钮时遇到了问题

汝飞
2023-03-14

你好,我试图选择并点击按钮“立即预订”,但当我查看源代码时,它显示了以下...

<div class="pl-0 mr-3 sticky-btn-wrapper">
    <div class="ko-container book-now-btn-container">
        <button class="btn btn-secondary text-uppercase btn-landing go-to-session" data-eid="757231" data-aid="97739" data-isavailable="true"> Book now</button>
    </div>
</div>



<div class="btn-book-top sticky-btn-wrapper justify-content-end" id="book-button-top">
    <div id="sticky-bottom-btn" class="sticky-bottom-btn flex-row w-100">
        <div class="ko-container book-now-btn-container">
            <button class="btn btn-secondary text-uppercase btn-landing go-to-session" data-eid="757231" data-aid="97739" data-isavailable="true">Book now</button></div>
        </div>
    </div>
</div>

当我检查Firefox中的“Book Now”链接时,显示了以下内容

<div class="ko-container book-now-btn-container">
            <button class="btn btn-secondary text-uppercase btn-landing go-to-session" data-eid="757231" data-aid="97739" data-isavailable="true">
                Book now
            </button>
</div>

[为什么有两个按钮class=“btn btn-secondary text-大写btn-landing go-to-session”的实例??]

WebElement wb = myDriver.findElement(By.xpath ("//div[@class='pl-0 mr-3 sticky-btn-wrapper'] and button[@class='btn btn-secondary text-uppercase btn-landing go-to-session']"));
wb.click();
org.openqa.selenium.InvalidSelectorException: 
Given xpath expression "//div[@class='pl-0 mr-3 sticky-btn-wrapper'] and button[@class='btn btn-secondary text-uppercase btn-landing go-to-session']" 
is invalid: TypeError: Document.evaluate: Result type mismatch

共有1个答案

滕学义
2023-03-14

您不需要使用操作数作为定位器,只需将xpath更改为:

//div[@class='pl-0 mr-3 sticky-btn-wrapper']//button

关键字在有两个或多个相似元素并且需要添加更多限制的情况下使用。另外,参数应该应用于同一个标记,而不是不同的标记。

<div class='1' style='1'>
    <button>Button1</button>
</div>

<div class='1' style='2'>
    <button>Button2</button>
</div>

<div class='2' style='2'>
    <button>Button3</button>
</div>
 类似资料:
  • 我正在尝试从一组大小未知的单选按钮中进行选择。(多套,但一步一步..)在实际站点上,它们不是值的text1。表单id是随机生成的,但遵循一种模式。所以我不能真的使用它。我得到了一个一致的课程.. 我已经尝试添加结束,什么也不会发生。

  • 但我一直收到下面的信息... 有人可以建议什么是正确的路径,这样我就可以点击链接:

  • 我正在尝试不同的方式选择一个特定的按钮使用seleninum webdriver与Java,但不幸的是,没有任何工作。 当我测试使用Selenium时,IDE是工作的。例如,我复制了相同的xpath,但当我试图在Java应用程序中进行测试时,任何东西都不起作用。我尝试使用不同的方法,通过.cssselector和通过.path。 这是我的HTML: 我需要选择带有文本“Create Applica

  • 我是Selenium IDE的新手,在这里需要选择单选按钮的帮助。就我而言,我正在尝试为由单选按钮组成的特定表单生成一个测试用例。当我运行命令以单独选择其中一个单选按钮时,该函数可以工作,但如果我运行整个测试用例,则单选按钮不会被选中并给出找不到Element Id的错误。这是我的html: 我的IDE命令:单击Target: id=ProjectSolutionsProject0。我尝试了ver

  • 我正在尝试通过文本选择列表中的条目。li条目也有ID,但我想用文本代替。 我有以下html片段: Leier kommunal bolig Leier bolig 选项一:我试着这样做: 我试过“值”和其他选项。但我总是得到“指定了一个无效或非法的选择器”。 但显然有问题,因为它没有导航到页面上的列表条目,并且该选项没有被选中。 另外,如果我使用.sendKeys(keys.enter)而不是.c