2017-02-09 10 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の2行目が強調表示されます。これでどのようにボックスをクリックできますか?セレンを使用してチェックボックスをクリックしたいが、方法は私のために働いていない

+0

これをやり始めたコードを追加してください。 –

答えて

0

例えば、CSSセレクタを使用します。

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

正確なコードを指定できますか? – Akshay

0

ActionChainsを使用してみてください:今のところ、このアプローチはFirefoxgeckodriver

+0

私はあなたのコードを試してみましたが、何のエラーもありませんでしたが、うまくいきませんでした。 4つのチェックボックスがあり、それぞれに2つのコード行がありますが、それらを一意にするのは、そのタイプを指定する2行の下の行です。これらの2行以下には、Sedanというコードがあります。コードをより効率的にすることができれば、私に教えてください。どうもありがとうございます。 – Akshay

+0

それを明確にしましょう。最初に ''、ありますか?その上にマウスポインタを置くと、 ''または両方の要素が利用可能になりましたか? – Andersson

+0

実際には何も変更されていません。​​隠しタイプは無効ですが、2番目の行にカーソルを置くと、チェックボックスがハイライト表示されます – Akshay

0
では動作しないこと

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

注意、

チェックボックスが別の要素の下にある可能性があります。ページ上の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

チェックボックスは表示されていますか?

デフォルトでは表示されていて現在表示されていないチェックボックスをチェックするのにスクリプトが失敗するという問題が発生しています。一旦スクロールして見えると、そのコマンドは正常に動作しました。

関連する問題