【问题标题】:How to handle auto suggestion web element in selenium 3如何在 selenium 3 中处理自动建议 Web 元素
【发布时间】:2017-08-05 01:08:00
【问题描述】:

我是自动化测试的新手,尝试在 booking.com 网站上使用 selenium 3 时遇到困难

有自动建议文本框,当您输入单词时,会显示自动建议,您可以从列表中单击,即新加坡市中心

试试 xpath id("basiclayout")/div[@class="leftwide rilt-left"]/div[@class="sb-searchbox__outer"]/form[@id="frm"]/div[@class="sb-searchbox__row u-clearfix"]/div[1]/div[@class="c-autocomplete sb-destination"]/ul[@class="c-autocomplete__list sb-autocomplete__list -visible"]/li[@class="c-autocomplete__item sb-autocomplete__item sb-autocomplete__item--city sb-autocomplete__item__item--elipsis"]

或cssc-autocomplete__item sb-autocomplete__item sb-autocomplete__item--city sb-autocomplete__item__item--elipsis

当我在 selenium java 上运行我的测试用例时,所有场景都失败了

如何处理这样的网页元素?

完整代码:

public class Selenium3Testing {
private WebDriver driver;

@Before
public void setUp() {
    String baseUrl = "https://www.booking.com/";
    System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/chromedriver.exe");
    DesiredCapabilities capabilities = new DesiredCapabilities();
    driver = new ChromeDriver(capabilities);
    driver.get(baseUrl);
}

@After
public void tearDown() {
    driver.quit();
}

@Test
public void openBookingDotCom() {
    driver.findElement(By.id("ss")).click();
    driver.findElement(By.id("ss")).clear();
    driver.findElement(By.id("ss")).sendKeys("Singapore");
    //click on auto suggestion row number 2
    driver.findElement(By.css("c-autocomplete__item sb-autocomplete__item sb-autocomplete__item--city sb-autocomplete__item__item--elipsis")).click();
    } 
}

【问题讨论】:

  • 请阅读How to Ask,尤其是关于minimal reproducible example(MCVE)和How much research effort is expected?的部分,这将帮助您调试自己的程序并自己解决问题。如果您这样做并且仍然卡住,您可以返回并发布您的 MCVE、您尝试过的内容以及执行结果(包括任何错误消息),以便我们更好地帮助您。还提供指向页面和/或相关 HTML 的链接。
  • 您能否分享 URL 以及您尝试自动化的确切手动步骤?
  • 用完整的代码更新了我的问题。

标签: java selenium selenium-webdriver


【解决方案1】:

我只是在手机上打字,所以没有代码,我们可以这样做。

为了给输入框输入,我希望如果我们在sendkeys中传递total word,建议可能不会加载或延迟。所以我遵循的最好方法是传递每个字符..可能是每个字符的睡眠时间为 300 毫秒。写成小方法,它将循环单词中的所有字符。

要单击建议列表,请尝试 xpath 包含文本..或者任何一个都可以。

【讨论】:

  • 感谢它在 sendkeys 命令后添加 Thread.sleep 时有效
猜你喜欢
  • 2021-07-10
  • 2017-04-18
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 2016-12-01
  • 1970-01-01
  • 2016-12-15
  • 2019-08-23
相关资源
最近更新 更多