我有像这样的HTML代码
<div class="_75e" id="u_0_1z">Invite friends to like this Page</div>
我尝试了以下方式
driver.find_element_by_id("u_0_1z").click()
和
driver.find_element_by_link_text('Invite friends to like this Page').click()
但是,单击消息框按钮而不是单击链接
你能帮我解决这个问题吗?非常感谢你!!
答案 0 :(得分:0)
driver.find_element_by_link_text('Invite friends to like this Page').click()
这绝对不会起作用,因为&#34; by link text&#34; locator仅适用于链接 - a
元素。
driver.find_element_by_id("u_0_1z").click()
这看起来应该与元素相匹配,但从症状判断,页面上有一个另一个元素id
。
我尝试使用&#34; by xpath&#34;选项:
driver.find_element_by_xpath("//div[. = 'Invite friends to like this Page']").click()
如果您遇到任何与时间相关的问题,也可以添加Explicit Wait:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
elm = wait.until(EC.visibility_of_element_located((By.XPATH, "//div[. = 'Invite friends to like this Page']")))
elm.click()