Selenium找不到定位器

时间:2016-04-26 06:59:36

标签: java html selenium

See this image我有一个可滚动的复选框列表,但我找不到实际的定位器。这是HTML:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://testtoolbar/skin/testtoolbar.css" type="text/css"?>
<overlay id="PDM-Overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <script type="application/x-javascript" src="chrome://testtoolbar/content/testtoolbar.js" />     
    <toolbox id="navigator-toolbox">
        <toolbar id="PDM-Toolbar" toolbarname="PDM Toolbar" accesskey="T" class="chromeclass-toolbar" 
        context="toolbar-context-menu" hidden="false" persist="hidden">
            <textbox id="testreference" value="" type="timed" oncommand="gotoitem(event)"/>
            <button id="GoButton" label="Go to Item" oncommand="gotoitem(event)"/>
        </toolbar>
    </toolbox>
</overlay>

我试过这个,但它不起作用:

<a class="collection-item" href="#!" disabled="">
  <span>
    <input id="3" class="filled-in checkbox-orange" type="checkbox"/>
    <label for="3"/>
  </span>
  <span for="3">  3 AM- 4 AM </span>
</a>

2 个答案:

答案 0 :(得分:1)

要将标记置于复选框中,您应使用<input>元素,而不是<a>!所以请尝试以下方法:

driver.findElement(By.xpath('//input[@class="filled-in checkbox-orange"][@type="checkbox"]')).click();

driver.findElement(By.id('3')).click();

答案 1 :(得分:0)

如果你得到&#34;元素当前不可见,因此可能无法与Command&#34;例外,您可能正在将元素显示或可见性属性设置为隐藏在其中一个css类中。要修复它,请执行此操作。

package obs.service;

import kar.AbstractDao;
import kar.DataAccessLayerException;
import obs.domain.User;

import org.springframework.stereotype.Service;

@Service("IUserService")
public class UserService extends AbstractDao {


	public UserService() {
		super();
	}

	public void create(User event) throws DataAccessLayerException {
		super.saveOrUpdate(event);
	}
}