Selenium XPath,选择具有相同 class 名称的按钮
Selenium XPath, selecting button with same class name
我有 html,如下所示:
<button onclick="newInputScenario()" class="btn btn-primary">New...</button>
<button onclick="uploadInputScenario()" class="btn btn-primary">Upload...</button>
<button onclick="diffScenarios('idb');" class="btn btn-primary">Diff...</button>
<button onclick="newUserScenario()" class="btn btn-primary">New UDS...</button>
但是上面所有的名字都一样class
。
我一直在使用以下代码,但它不适用于上面的代码,因为我需要单击第二个按钮Upload...
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
if __name__ == '__main__':
path_to_chromedriver = r'C:\chromedriver' # change path as needed
browser = webdriver.Chrome(executable_path=path_to_chromedriver)
wait = WebDriverWait(browser, 5)
wait.until(EC.presence_of_element_located((By.XPATH, "//button[@class='btn btn-primary']"))).click()
如何修改上面的代码以便能够单击 Upload...
试试下面的代码。
wait.until(EC.presence_of_element_located((By.XPATH, "//button[@class='btn btn-primary'][.='Upload...']"))).click()
你也可以使用下面的xpath。
//button[@class='btn btn-primary'][2]
//button[@onclick='uploadInputScenario()']
我有 html,如下所示:
<button onclick="newInputScenario()" class="btn btn-primary">New...</button>
<button onclick="uploadInputScenario()" class="btn btn-primary">Upload...</button>
<button onclick="diffScenarios('idb');" class="btn btn-primary">Diff...</button>
<button onclick="newUserScenario()" class="btn btn-primary">New UDS...</button>
但是上面所有的名字都一样class
。
我一直在使用以下代码,但它不适用于上面的代码,因为我需要单击第二个按钮Upload...
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
if __name__ == '__main__':
path_to_chromedriver = r'C:\chromedriver' # change path as needed
browser = webdriver.Chrome(executable_path=path_to_chromedriver)
wait = WebDriverWait(browser, 5)
wait.until(EC.presence_of_element_located((By.XPATH, "//button[@class='btn btn-primary']"))).click()
如何修改上面的代码以便能够单击 Upload...
试试下面的代码。
wait.until(EC.presence_of_element_located((By.XPATH, "//button[@class='btn btn-primary'][.='Upload...']"))).click()
你也可以使用下面的xpath。
//button[@class='btn btn-primary'][2]
//button[@onclick='uploadInputScenario()']