Python Selenium:单击单击单选按钮



我想知道如何使用python selenium单击此页面上的按钮。

这是网页:

https://hk.news.yahoo.com/poll/f83b2360-b41c-11e9-8d6b-b77be6568e98

按钮的源代码为:

<label class="option Cur(p) Ov(h) D(b) Pos(r) Bxsh($BorderLikeBoxShadow) Bdc($borderGray) Px(15px) Py(23px)" data-reactid="43">
 <div class="Pos(r) D(tb)" data-reactid="44">
  <div class="D(tbc) Ta(c) Va(m)" data-reactid="45"><input type="radio" value="o0" class="D(n) check" name="option" data-reactid="46"><img class="Trsdu(.3s) Op(0.7) Fil($opacityMsOld) Mend(15px) W(26px) H(26px)" src="https://s.yimg.com/ji/news/ybrain/unselect@1x.png" alt="" data-reactid="47"></div>
  <div class="D(tbc) Va(m) Lh(1.5) C($c-fuji-grey-i) LineClamp(1) Fz(16px)" data-reactid="48">支持</div>
 </div>
</label>

我尝试了下面的脚本,但它不起作用。

import os
import glob
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import WebDriverException
options = webdriver.ChromeOptions()
options.add_argument('window-size=1920x1080')
link_url="https://hk.news.yahoo.com/poll/f83b2360-b41c-11e9-8d6b-b77be6568e98"
driver = webdriver.Chrome('chromedriver', chrome_options=options)
driver.get(link_url)
driver.find_elements_by_xpath("//*[@type='radio']")[0].click()

有什么建议吗?谢谢!

使用WebDriverWait和JavaScript executor单击XPath以下元素。

element=WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,"(//label[contains(@class,'option Cur(p) Ov(h) D(b) Pos(r)')]//div[contains(@class,'D(tbc) Va(m)')])[1]")))
driver.execute_script("arguments[0].click();",element)

element=WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,"(//label[contains(@class,'option Cur(p) Ov(h) D(b) Pos(r)')]//img)[1]")))
driver.execute_script("arguments[0].click();",element)

您需要导入以下。

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

最新更新