如何通过Selenium和Python在嵌套的div标记中找到按钮?
首先,我是Selenium for python的新手。我的问题是: 我想找到自动点击的按钮。这是我的代码按钮:如何通过Selenium和Python在嵌套的div标记中找到按钮?,python,selenium,selenium-webdriver,xpath,css-selectors,Python,Selenium,Selenium Webdriver,Xpath,Css Selectors,首先,我是Selenium for 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 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>
点击这里!
我尝试:
浏览器。通过css\u选择器(“.side button test.middle”)查找元素,但它不起作用。有人能帮我吗 试试这个:
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
中,
您必须像这样切换Web驱动程序的焦点:
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()
用Xpath试试这个
find_element_by_xpath("//div[contains(text(),'Click here !')]")
根据您共享的HTML,单击文本为的元素,单击此处您需要诱导WebDriverwait使元素可单击,并且您可以使用以下解决方案:
CSS\u选择器
:
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
谢谢你的信任,但它不起作用。它抛出错误:消息:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:“.side button test middle>div”}您已经编写了这个。side button test middle>div,我向您提供了以下内容:.side button test.middle>div请参阅。在middle>div之前,您的案例中缺少它。顺便说一句,我已经更新了我的答案,看看吧。你在这个问题上花了这么多时间,我们甚至不知道什么是问题,什么是错误has@AndreiSuvorkov:是的,这是真的。它不工作是什么意思?如果您没有具体说明问题所在,我们如何帮助您?您得到的错误是什么?@LoiHu我们的意思是“它不工作”,您应该提供错误堆栈,以便我们可以跟踪异常。