用Selenium选择表格输入不起作用?

时间:2014-12-12 18:07:29

标签: python selenium

我正在制作一个软件,应该使用Selenium(firefox,python)连接到网站,然后单击“是”按钮。这是页面的源代码(只是那个表单部分):

<div class="grid_24">

            <div class="content_block">

        <form action="" method="POST" class="fatform">
            <p style="text-align:center;">
                <input style="margin-right:50px;float:none;" type="submit" name="yes" value="da">
                <input style="float:none;" type="submit" name="no" value="ne">
                <input type="hidden" name="checkthis" value="lpftvqenq">
            </p>
        </form>

    </div>

我在看Selenium Python Docs,但我自己无法解决。所以我在这里我尝试了几种类型的选择元素:

proxy(ip, port).find_element_by_name('yes').click()
form = proxy(ip, port).find_elements_by_class_name("fatform") #printing this gives nothing
proxy(ip, port).find_element_by_css_selector(".yes[value='da']").click()

所有这些示例(返回“”的表单字符串除外)都返回NoSuchElementException。

提前致谢! :)

2 个答案:

答案 0 :(得分:0)

您使用了错误的选择器。

css选择器中的

.表示类,而不是这里的情况。应该看起来像

[name='yes'][value='da']

修改 包括显式等待

WebDriverWait(proxy(ip, port), 10).until(
            EC.find_element_by_css_selector((By.CSS_SELECTOR, "[name='yes'][value='da']"))

proxy(ip, port).find_element_by_css_selector("[name='yes'][value='da']").click()

答案 1 :(得分:0)

为什么不通过xpath搜索元素呢?根据我的经验,Firefox的Firebug插件生成的XPath对我来说效果非常好。

proxy(ip, port).find_element_by_xpath("xpath text").click()