我正在制作一个软件,应该使用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。
提前致谢! :)
答案 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()