简体   繁体   English

当页面源也包含'type'作为字符串时,使用Selenium Python查找网页上的复选框数量

[英]Find number of check-boxes on webpage, when page source contains 'type' as a string also, using selenium python

This is my code which finds number of check-boxes on the current webpage 这是我的代码,可找到当前网页上的复选框数量

checkboxes=driver.find_elements(By.XPATH("html/body/div[2]/div/section[8]/div/div/div[3]/div/div[2]/table/tbody/tr[1]/td[1]/input[@type='checkbox']"))

but it gives following error: 但它给出以下错误:

'str' object is not callable 'str'对象不可调用

As HTML DOM contains string "checkbox" in it. 由于HTML DOM中包含字符串“复选框”。

Thus I am unable to find a way to calculate total number of check-boxes. 因此,我无法找到一种计算复选框总数的方法。

You should send two arguments to find_elements , like checkboxes=driver.find_elements(By.XPATH, xpath) while there is only one argument in your code- checkboxes=driver.find_elements(By.XPATH(xpath)) . 您应该向find_elements发送两个参数,例如checkboxes=driver.find_elements(By.XPATH, xpath)而在代码中只有一个参数checkboxes=driver.find_elements(By.XPATH(xpath)) So you should use: 因此,您应该使用:

checkboxes=driver.find_elements(By.XPATH, "html/body/div[2]/div/section[8]/div/div/div[3]/div/div[2]/table/tbody/tr[1]/td[1]/input[@type='checkbox']")

UPDATE UPDATE

Regarding OP comment: If you want to get only checkboxes visible on page, use following code: 关于OP注释:如果只想使页面上的复选框可见,请使用以下代码:

checkboxes_list = [check for check in driver_find_elements_by_xpath('//input[@type="checkbox"]') if check.is_displayed()]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM