首先我是Selenium的python新手,我的问题是: 我想找到自动点击按钮。这是我的代码按钮:
<div class="check-button button-display">
<div class="side-way side-way_left">
<div class="side-button-test middle" >
<div class="label">Click here !</div>
</div>
</div>
我尝试:
browser.find_element_by_css_selector(".side-button-test.middle")
,但是它不起作用。任何人都可以帮助我。
答案 0 :(得分:0)
尝试:
wait = WebDriverWait(browser, 20)
element = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'.side-button-test.middle>div')))
element.click()
请检查 iframe (如果在iframe/frameset
中),
您必须像这样
browser.switch_to.frame(web element)
如果在完成当前帧后将驱动程序的焦点切换回主要内容,这总是一个好习惯,您可以尝试以下代码:
browser.switch_to.defaultContent();
尽管您也可以尝试使用此xpath:
//div[contains(text(),'Click here !')]
在这种情况下,代码为:
wait = WebDriverWait(browser, 20)
element = wait.until(EC.element_to_be_clickable((By.XPATH,'//div[contains(text(),'Click here !')]')))
element.click()
答案 1 :(得分:0)
尝试使用Xpath
regex
答案 2 :(得分:0)
根据您共享的HTML,点击带有点击此处!”文本的元素!,您需要诱使 WebDriverwait 使元素可点击< / em>,则可以使用以下解决方案:
CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.side-way.side-way_left > div.side-button-test.middle > div.label"))).click()
XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='side-way side-way_left']/div[@class='side-button-test middle']/div[@class='label'][contains(.,'Click here !')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC