Selenium是否可以使用标签?

时间:2014-11-19 03:57:41

标签: python selenium selenium-webdriver

HTML片段:

<label id="on" class="cb-enable"><span>On</span></label>

我的代码段:

onBtn = driver.find_element_by_class_name("cb-enable")
onBtn.click()

也尝试过:

driver.find_element_by_css_selector("label#on.cb-enable").click()
driver.find_element_by_css_selector('.cb-enable').click()
driver.find_element_by_id("on").click()

我查看了元素属性:

.id = {0b236cc6-c0b9-4592-a171-96d2c8890880}
.is_enabled() = True
.is_displayed() = True
.size = {'width': 36, 'height': 30}

不会抛出任何错误,但标签未按预期从Off切换到On。此标签会触发Javascript操作,这就是我真正需要执行的操作。

len(driver.find_elements_by_class_name("cb-enable")) = 1

我已经多次使用Selenium,但几个星期后就没有了。

更新:我通过在运行时手动最大化窗口来实现它。我认为该按钮部分隐藏在网站底部的弹出栏下。

4 个答案:

答案 0 :(得分:2)

事实上,你可以使用Selenium执行javascript代码,如:

driver.execute_script(javascript_code)

单击HTML元素。

答案 1 :(得分:1)

这会有用吗?

driver.find_element_by_css_selector('.cb-enable').click()

答案 2 :(得分:0)

你能试试吗

包括等待webElement出现

在Btn.sendKeys(Keys.ENTER);

答案 3 :(得分:0)

尝试通过Xpath点击span内的label

driver.find_element_by_xpath("//label[@class='cb-enable'][@id='on']/span[text()='On']").click()

或通过CSS:

driver.find_element_by_css_selector("label[class='cb-enable'][id='on'] span").click()