Как установить флажок в новом окне через селеновый вебдрайвер - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь установить этот флажок, но не могу установить флажок.

Пожалуйста, пришлите мне xpath или css

enter image description here

Я пытался:

xpath
//div//*[@id='thCheckBox']

.//*[@id='searchOrderModel']/div/div/div[3]/div/button[2]

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Согласно предоставленному вами HTML, и ваш вопрос как Флажок находится в новом окне, чтобы click() на Флажок вы должны вызвать WebDriverWait для флажка , который можно активировать, и вы можете использовать следующую Стратегию локатора :

  • cssSelector :

    "table.table.table-hover.dataTable#orderNoDropdown label[for='thCheckBox']"
    
  • xpath :

    "//table[@class='table table-hover dataTable' and @id='orderNoDropdown']//label[@for='thCheckBox']"
    
0 голосов
/ 16 мая 2018

Как вы упомянули, это новое окно, тогда вам придется переключить на новые окна , чтобы взаимодействовать с веб-элементом. после перехода в новое окно вы можете использовать этот код:

ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());  
driver.switchTo().window(tabs.get(1));

// Теперь вы сосредоточены на новой Windows, и теперь вы можете взаимодействовать с флажком:

WebElement checkBox = new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.id("thCheckBox")));  
checkBox.click();  

Опять же, вам нужно переключиться обратно на страницу, с которой вы перешли на эту страницу, если вы этого хотите.

driver.close();
driver.switchTo.windows(tabs.get(0));
0 голосов
/ 16 мая 2018

Рядом с флажком есть метка. Вы можете попытаться нажать на ярлык, после чего он установит флажок, используя приведенный ниже x-путь.

//label[@for='thCheckbox']
...