直接从 chrome 复制 xpath,但不工作
Copied xpath directly from chrome, and not working
试图从fanduel中刮赔率,目标是获得玩家的名字。在这种情况下杰森·塔图姆。
即使我直接从 chrome 复制 xpath,它似乎也不起作用。虽然它在我硬编码并通过包含文本 Jayson Tatum 的 xpath 查找元素时有效。
这是我的代码
name = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.XPATH,'//*[@id="root"]/div/div[2]/div[1]/div/div[2]/div[3]/div/div[2]/div/div[3]/div[1]/div/div/div[1]/span')))
也试过这个
name = driver.find_element(By.XPATH, '//*[@id="root"]/div/div[2]/div[1]/div/div[2]/div[3]/div/div[2]/div/div[3]/div[1]/div/div/div[1]/span')
尝试两种方法仍然得到一个 NoSuchElement。
要打印文本 Jayson Tatum
您可以使用以下 :
使用 xpath 和 text 属性:
print(driver.find_element(By.XPATH, "//span[text()='UNDER']//following::div[1]//span").text)
理想情况下你需要诱导 for the and you can use either of the following :
使用 XPATH 和 get_attribute("innerHTML")
:
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[text()='UNDER']//following::div[1]//span"))).get_attribute("innerHTML"))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
You can find a relevant discussion in
参考资料
Link 到有用的文档:
get_attribute()
方法Gets the given attribute or property of the element.
text
属性returnsThe text of the element.
- Difference between text and innerHTML using Selenium
试图从fanduel中刮赔率,目标是获得玩家的名字。在这种情况下杰森·塔图姆。
即使我直接从 chrome 复制 xpath,它似乎也不起作用。虽然它在我硬编码并通过包含文本 Jayson Tatum 的 xpath 查找元素时有效。 这是我的代码
name = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.XPATH,'//*[@id="root"]/div/div[2]/div[1]/div/div[2]/div[3]/div/div[2]/div/div[3]/div[1]/div/div/div[1]/span')))
也试过这个
name = driver.find_element(By.XPATH, '//*[@id="root"]/div/div[2]/div[1]/div/div[2]/div[3]/div/div[2]/div/div[3]/div[1]/div/div/div[1]/span')
尝试两种方法仍然得到一个 NoSuchElement。
要打印文本 Jayson Tatum
您可以使用以下
使用 xpath 和 text 属性:
print(driver.find_element(By.XPATH, "//span[text()='UNDER']//following::div[1]//span").text)
理想情况下你需要诱导
使用 XPATH 和
get_attribute("innerHTML")
:print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[text()='UNDER']//following::div[1]//span"))).get_attribute("innerHTML"))
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
You can find a relevant discussion in
参考资料
Link 到有用的文档:
get_attribute()
方法Gets the given attribute or property of the element.
text
属性returnsThe text of the element.
- Difference between text and innerHTML using Selenium