Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我想使用selenium单击一个复选框,但没有任何方法适合我 == $0 轿车_Python_Selenium_Webdriver_Mechanize_Bs4 - Fatal编程技术网

Python 我想使用selenium单击一个复选框,但没有任何方法适合我 == $0 轿车

Python 我想使用selenium单击一个复选框,但没有任何方法适合我 == $0 轿车,python,selenium,webdriver,mechanize,bs4,Python,Selenium,Webdriver,Mechanize,Bs4,我想单击该复选框,当我将鼠标悬停在该框上时,html的第二行将高亮显示。如何使用此选项单击框?使用css选择器,例如: <input type="hidden" name="vendor_service[customized_car_types[]][is_checked]"> <input type="checkbox" name="vendor_service[customized_car_types[]][is_checked]">== $0 <b>Se

我想单击该复选框,当我将鼠标悬停在该框上时,html的第二行将高亮显示。如何使用此选项单击框?

使用css选择器,例如:

<input type="hidden" name="vendor_service[customized_car_types[]][is_checked]">
<input type="checkbox" name="vendor_service[customized_car_types[]][is_checked]">== $0
<b>Sedan</b>
尝试使用:


请注意,目前这种方法在Firefox中不起作用(
geckodriver

可能是复选框位于另一个元素的“下方”。尝试直接与页面上的javascript交互。您可以尝试以下方法:

from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(URL)
checkbox = driver.find_element_by_xpath('//input[@name="vendor_service[customized_car_types[]][is_checked]"]')
actions = ActionChains(driver)
actions.move_to_element(checkbox)
actions.click()
actions.perform()

抱歉,我的解决方案是java。

复选框是否可见


我记得遇到一个问题,我的脚本无法选中默认情况下在页面上可见但当前不在视图中的复选框。当我向下滚动并看到它时,该命令就正常工作了。

我尝试了你的代码,没有出现任何错误,但也不起作用。有4个复选框,当我将鼠标悬停在它们上面时,每个复选框都有这两行代码,但使它们唯一的是指定类型的两行下面的一行。在这两行下面有一个行-Sedan,如果这可以帮助您提高代码的效率,那么请尝试告诉我。。不管怎样,谢谢你的回答。让我说清楚。最初有
,对吗?当您将鼠标指针悬停在它上面时,它会变为
,或者两个元素都可用?实际上没有任何变化,类型中有这两行隐藏无效,但当我悬停在第二行时,复选框会高亮显示try
checkbox=driver。通过xpath('//input[@name=“vendor\u service”)查找元素[customized_car_types[][is_checked]”和@type=“checkbox”])
我应该添加吗。单击()?我使用的是python,很抱歉我没有提到请在开始执行此操作的地方添加代码。
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(URL)
checkbox = driver.find_element_by_xpath('//input[@name="vendor_service[customized_car_types[]][is_checked]"]')
actions = ActionChains(driver)
actions.move_to_element(checkbox)
actions.click()
actions.perform()
void clickElementWithJs(WebDriver driver, String cssSelector) {
    js = (JavascriptExecutor) driver;
    WebElement element = driver.findElement(By.cssSelector(cssSelector));
    js.executeScript("arguments[0].click();", element);
}