Python Selenium单击di中的按钮

2024-10-01 17:32:45 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在制作一个脚本,在网页浏览器中点击一些按钮。在

导入selenium驱动程序:

from selenium import webdriver
browser = webdriver.Chrome(executable_path=r'C:/Python27/Scripts/chromedriver.exe')

在这个例子中,当我想点击“离开酒店”按钮时,我可以使用css_选择器,它可以正常工作。在

^{pr2}$

类似这样的方法效果很好:

browser.find_element_by_css_selector('#canvas > a').click()

但是当我尝试在另一个页面上单击div中的按钮时,它不起作用。html如下所示:

<div class="canvas hotel-out">
<input class=" btn btn-block" name="enkel_knapp" onmousedown="krim_enkel_bego(2);" type="button" id="submit" value="Begå kriminaliteten!">
<input type="hidden" name="ltoken" value="e386d141ff442655d48275e0269fe1fe">
<input type="hidden" value="2b61bc54fe84d18ae5ad797826152e32" name="ttoken">
<input type="hidden" name="jtoken" id="jtoken" value="">                        
<input type="hidden" id="xy" value="nytt system (ingen koordinater)" name="xy">
</div>

但问题是按钮xpath与其他3个按钮相似。这三个按钮都有xpath“/*[@id=“submit”]”。我想这有什么冲突吗?在

当我试着以这样的名字做的时候,我没有得到回应:

browser.find_element_by_name('enkel_knapp').click()

我按身份证也没什么:

browser.find_element_by_id('submit').click()

有没有人知道按div筛选的提示?在

我得到的错误是:Pastebin


Tags: namedivbrowseridinputbyvaluetype
1条回答
网友
1楼 · 发布于 2024-10-01 17:32:45

正如您在问题中提到的,xpath //*[@id="submit"]不是唯一的,并且与其他3个按钮相似,因此我们需要为该按钮构造一个唯一的css_selectorxpath,如下所示:

  • css_selector

    browser.find_element_by_css_selector("div.canvas.hotel-out > input#submit").click()
    
  • xpath

    browser.find_element_by_xpath("//div[@class='canvas hotel-out']/input[@id='submit']").click()
    

相关问题 更多 >

    热门问题