如何在此页面上定位元素?

How to locate an element on this page?

我用这个 link

尝试了很多来定位这个页面上的元素

我只想 select“1 张大床”或“1 张双人大床”,然后从下拉列表中选择 select 数量,然后按“我会预订”按钮.

但我尝试所有这些都完全失败了:-

  1. 使用操作 --> moveToElement --> perform()
  2. 使用 JS 执行 --> scrollToView, scrollBy(0,100) 例如使页面向下滚动
  3. 使用所有类型的定位器(ID、xPaths、cssSelectors、名称),但总是出现一条错误消息,指出预期条件失败:等待 By.xpath- By.id 定位的元素的可见性......等.
  4. 试图搜索 iFrame 但我没有找到,但我认为有一些但与我想要的定位器无关
  5. Thread.sleep() 如果元素未加载到网页上,则等待一段时间。

我正在使用 Selenium JAVA TestNG

所以在页面中我写了这个函数:-

第class页我写了这个函数:-

private By btnBed = By.xpath("(//i[@class='bicon bicon-double'])[1]");

     public void clickBed(){
//        JavascriptExecutor exe = (JavascriptExecutor)driver;
//        exe.executeScript("window.scrollBy(0,1000)");
    click(btnBed);
}

在我的测试中我这样写:-

hotelPage.clickBed();

错误信息:-

Expected condition failed: waiting for visibility of element located by By.xpath

ALL I want to do is to select "1 queen bed" or "1 double large bed"

我检查了您提供的 link 上的 DOM,我发现它是您可能想要 select 的单选按钮。尝试找到像这样的单选元素按钮

<input type="radio" value="1" name="bedPreference_78883120" data-bed-type="">

按名称查找

By.name("bedPreference_78883120")

然后执行点击。

问题是此页面是在新选项卡中打开的,因此代码无法在屏幕上定位任何元素。 所以我只是切换标签,代码工作正常。