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,但几个星期后就没有了。
更新:我通过在运行时手动最大化窗口来实现它。我认为该按钮部分隐藏在网站底部的弹出栏下。
答案 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()