为什么selenium webdriver识别<ins>而不是输入框本身?

时间:2015-05-08 22:56:08

标签: python selenium webdriver

我正在使用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能够找到它。

为什么?

1 个答案:

答案 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;"/>