2017-02-09 31 views
0
<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> 

我想單擊複選框,當我將鼠標懸停在框的第二行的html被突出顯示。我怎樣才能點擊這個框?我想單擊使用硒的複選框,但沒有方法正在爲我工​​作

+0

請在開始執行此操作的位置添加代碼。 –

回答

0

使用CSS選擇器,例如:

input[type=checkbox][name*=vendor_service] 
+0

你能指定確切的代碼嗎? – Akshay

0

嘗試使用ActionChains

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() 

注意,對於現在這種做法不Firefox工作(geckodriver

+0

我試過你的代碼,我沒有得到任何錯誤,但它沒有工作。有4個複選框,當我將它們懸停在它們上面時,每個代碼都有這兩行代碼,但是使它們唯一的是兩行下面的行,指定類型。在這兩條線下面有一條線 - Sedan如果這可以幫助您使代碼更有效,那麼請嘗試告訴我..感謝您的回答 – Akshay

+0

讓我們說清楚。最初有'',對吧?當你將鼠標指針懸停在它上面時,它會變成''或者這兩個元素都可用? – Andersson

+0

沒有實際變化,這裏面有兩條線​​隱藏類型沒有效果,但當我懸停在第二行時,複選框突出顯示 – Akshay

0

這可能是複選框是'在'下面的另一個元素。嘗試直接與頁面上的JavaScript進行交互。你可以嘗試這樣的:

void clickElementWithJs(WebDriver driver, String cssSelector) { 
    js = (JavascriptExecutor) driver; 
    WebElement element = driver.findElement(By.cssSelector(cssSelector)); 
    js.executeScript("arguments[0].click();", element); 
} 

道歉,我的解決方案是在java中。

+0

我正在使用Python,對不起,我沒有提到 – Akshay

0

該複選框是否可見?

我記得遇到了一個問題,我的腳本將無法檢查默認情況下在頁面上可見但當前不可見的複選框。一旦我向下滾動並顯示出來,該命令就像它應該那樣工作。

相關問題