如何使用Selenium和Java根据文本条件单击输入元素

问题描述

我在JAVA上使用硒和junit5。我在turna.com上进行测试。如何在Pegasus(文本)上单击输入按钮。

航空公司名称类型:

  • 飞马座
  • THY
  • Anadolujet
<div class="item-domestic departure-flight rt-domestic-item flight" id="1028" style="">   
        <div class="col-sm-8">
            <div class="caption">
                <div class="airline-img-wrapper">                   
                </div>
                <div class="airline-tag-wrapper">
                    <div class="airline-name">Pegasus
                    </div>     
                </div>                
            </div> 
        </div>               
        <div class="col-sm-4 text-right amount-wrapper">
            <div class="price">               
            </div>
            <div class="button">
                <input type="button" class="from-in-button" value="Seç" txt="Seçili">
            </div>            
        </div>
</div>

我的代码

WebElement airlinename= findElement(airline_name);
if(airlinename.getText()=="Pegasus")
{
    clickElement(fromBtn); //input button

}

我正在尝试:)

.airline-name[text="Pegasus"],.from-in-button

问题:我无法单击输入按钮(飞马文字标签)。

解决方法

要针对文本飞马座单击<input>元素,您需要为elementToBeClickable()引入WebDriverWait,并且可以使用以下{{ 3}}:

  • xpath

    new WebDriverWait(driver,20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='airline-name' and contains(.,'Pegasus')]//following::div//input[@class='from-in-button' and @value='Seç']"))).click();
    
  • 浏览器快照(来自Locator Strategies):

website