【发布时间】:2020-03-13 07:18:52
【问题描述】:
我面临这样一种情况,即模态有时有一个用于登录 Facebook 的所需按钮,有时我必须单击“更多选项”才能访问 Facebook 按钮。另一个障碍是more_options_btn 的 xpath 与称为“登录失败?”的 xpath 相同。所以我添加了一个[contains(text(),"More Options")],但我不确定这里的语法并且在文档中找不到正确的方法。在任何情况下它都会抛出一个错误,这可能是由于button 元素没有文本,而是像button > span > text 一样嵌套
请记住,我想让我的解决方案尽可能动态和健壮,但对 Selenium 还没有很多经验。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('http://localhost:3000/')
try:
fb_btn = driver.find_element_by_xpath(
'//*[@id="modal-manager"]/div/div/div/div/div[3]/span/div[2]/button')
fb_btn.click()
except:
more_options_btn = driver.find_element_by_xpath(
'//*[@id="modal-manager"]/div/div/div/div/div[3]/span/button[contains(text(),"More Options")]')
more_options_btn.click()
fb_btn = driver.find_element_by_xpath(
'//*[@id="modal-manager"]/div/div/div/div/div[3]/span/div[2]/button')
fb_btn.click()
【问题讨论】:
-
请贴出相关的HTML代码
标签: python-3.x selenium google-chrome selenium-webdriver