我正在使用Selenium Webdriver和Python。在网页上,我有一个输入复选框:
<input class=“theme1" type="checkbox" value="1" name=“sale_enabled">
<ins class=“theme-helper" style="position: absolute; top: 0%; left: 0%; display: block; border: 0px none; opacity: 0;"/>
当我这样做时:
driver.find_element_by_name(‘sale_enabled’).click()
Selenium webdriver找不到复选框并进行检查。
但如果我这样做:
driver.find_element_by_class(‘theme1-helper’).click()
然后Selenium能够找到它。
为什么?
答案 0 :(得分:2)
您的硒选择器看起来是正确的(虽然您的html中不存在类theme1-helper
)。
看起来您的问题可能是使用奇怪字符的HTML,导致它无法正确解析。
<input class=“theme1" type="checkbox" value="1" name=“sale_enabled">
^ this character should be " ^ and so should this one
<ins class=“theme-helper" style="position: absolute; top: 0%; left: 0%; display: block; border: 0px none; opacity: 0;"/>
因此,看起来某些问题导致name属性无法访问:
<input class="theme1" type="checkbox" value="1" name="sale_enabled">
<ins class=“theme-helper" style="position: absolute; top: 0%; left: 0%; display: block; border: 0px none; opacity: 0;"/>