Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取具有On&;的On/Off开关的当前值;标签外?_Java_Html_Selenium Webdriver - Fatal编程技术网

Java 如何获取具有On&;的On/Off开关的当前值;标签外?

Java 如何获取具有On&;的On/Off开关的当前值;标签外?,java,html,selenium-webdriver,Java,Html,Selenium Webdriver,如何获取具有开/关标签的开/关开关的当前值 此开关的HTML代码如下所示- <div class="make-switch has-switch"> <div class="switch-on switch-animate"> <input type="checkbox" data-bind="switch: DegreeSetting, switchOptions: { onLabel: 'F', offLabel: 'C' }"> <span cla

如何获取具有开/关标签的开/关开关的当前值

此开关的HTML代码如下所示-

<div class="make-switch has-switch">
<div class="switch-on switch-animate">
<input type="checkbox" data-bind="switch: DegreeSetting, switchOptions: { onLabel: 'F', offLabel: 'C' }">
<span class="switch-left">F</span>
<label>&#160;</label>
<span class="switch-right">C</span>
这将有助于:

对于现代浏览器:

var checkedValue = document.querySelector('.messageCheckbox:checked').value;
通过使用jQuery:

var checkedValue = $('.messageCheckbox:checked').val();
没有jQuery的纯javascript:

var checkedValue = null; 
var inputElements = document.getElementsByClassName('messageCheckbox');
for(var i=0; inputElements[i]; ++i){
  if(inputElements[i].checked){
       checkedValue = inputElements[i].value;
       break;
  }
}

您应该尝试以下操作:-

WebElement el = driver.findElement(By.xpath("//div[contains(@class, 'switch-on switch-animate')]/input[@type='checkbox']"));

boolean isChecked = el.isSelected();

if (isChecked)
{
  Log.info("Current F/C setting is : F" );
}
else
{
  Log.info("Current F/C setting is : C" );
}
WebElement el = driver.findElement(By.xpath('//input[@data-bind="switch: DegreeSetting, switchOptions: { onLabel: \'F\', offLabel: \'C\' }"]'));
已编辑:-要使用其属性
数据绑定来定位
复选框
,请按如下方式使用:-

WebElement el = driver.findElement(By.xpath("//div[contains(@class, 'switch-on switch-animate')]/input[@type='checkbox']"));

boolean isChecked = el.isSelected();

if (isChecked)
{
  Log.info("Current F/C setting is : F" );
}
else
{
  Log.info("Current F/C setting is : C" );
}
WebElement el = driver.findElement(By.xpath('//input[@data-bind="switch: DegreeSetting, switchOptions: { onLabel: \'F\', offLabel: \'C\' }"]'));


希望它能帮助你…:)

OP要求使用Java。我不好,我以为Java for html是javascript,很抱歉,可能与使用上述代码重复,它给出错误-无法找到元素。@J.Doe粘贴此
$x(“//div[contains(@class,'switch-on-switch-animate')]/input[@type='checkbox'])
在您的浏览器控制台上显示该复选框,并让我知道这将返回您想要或不想要的正确复选框。我正在使用eclipse开发此代码,它不接受$x。它返回为[]。我不理解它的含义。@J.Doe这意味着提供的
xPath
不会返回您想要的元素。它返回空数组。。您需要为上面提供的代码提供正确的checkbox元素xPath,该代码定位到您想要的checkbox元素。。