0

I am trying to get text from this site using Selenium WebDriver and here is my code.

from os import system
from selenium import webdriver
driver = webdriver.Chrome("./chromedriver")
driver.get("http://www.lutanho.net/play/hex.html")

msgbox = driver.find_element_by_css_selector("body > div > form > table > tbody > tr > td:nth-child(5) > table > tbody > tr:nth-child(9) > td > table > tbody > tr:nth-child(3) > td > input")
msg = msgbox.text

print(msg)

I want to get the message in the selected box. I expect the value of msg would become something likes " Red to move." or " Blue has won !". However, the result of msg is empty, indicating that msg did not get any value from msg = msgbox.text.

I wonder why msg does not change every time when I execute a move?

By the way, I have check this similar problem, but it did not help in my case.

2 Answers 2

3

The problem you have is that, since the text is in an input and not a normal element you need to get the text by calling msg = msgbox.get_attribute('value') because that's where the text is stored in the html.

PS: To have it updating you need to re-set the msg variable to msgbox.get_attribute('value') after you make a move, each time you make a move.

Sign up to request clarification or add additional context in comments.

Comments

1

The other option is return that value by executing:

msg = driver.execute_script("return window.document.OptionsForm.Msg.value")

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.